首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Objective-C
项阿丑
创建于2026-02-04
订阅专栏
OC相关知识整理
暂无订阅
共188篇文章
创建于2026-02-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
11-5.【OC】【protocol】Protocol extension 默认实现的静态派发原理是什么?
在 Swift 中,Protocol Extension(协议扩展)提供的默认实现究竟是静态派发还是动态派发,取决于该方法是否在 Protocol 的主定义(Declaration) 中声明。 这是一
11-4.【OC】【protocol】Swift protocol 中的 associatedtype 和泛型约束如何映射到 runtime?
Swift 的协议与 Objective-C 协议最大的不同在于:OC 协议是动态的、基于消息的,而带 associatedtype 的 Swift 协议(通常被称为 PATs, Protocols
11-3.【OC】【protocol】Swift Protocol 与 OC Protocol 的桥接原理是什么?
Swift 与 Objective-C (OC) Protocol 的桥接是 iOS 混编开发的核心。其底层原理可以概括为 “编译器自动合成转换器(Thunking)” 与 “运行时元数据对齐” 。
11-2.【OC】【protocol】Protocol 在 runtime 中是如何表示的?
在 Objective-C Runtime 中,Protocol(协议)被视为一种特殊的对象。它不像 Class 那样拥有自己的实例变量空间,而是一套关于方法的“蓝图”或“描述符” 。 在底层,协议由
11-1.【OC】【protocol】Objective-C protocol 的 optional / required 区别是什么?
在 Objective-C 中,Protocol(协议)定义了一组方法规范。@required 和 @optional 关键字决定了遵循该协议的类**“必须实现”还是“可以选择实现”**这些方法。 两
10-5.【OC】【extension】Category 和 Extension 在 runtime 中对方法列表的影响有什么差异?
在 Runtime 层面,Category 和 Extension 的差异本质上是 “静态合并” 与 “动态注入” 的博弈。这种差异直接决定了它们如何影响类的方法列表。 1. Extension:编译
10-4.【OC】【extension】Swift extension 与 class 的访问控制结合,有什么限制?
在 Swift 中,extension 与 class 的访问控制(Access Control)结合时,遵循的是“静态安全优先”的原则。这与 Objective-C 那种“只要知道名字就能调”的松散
10-3.【OC】【extension】Swift extension 可以做什么?不能做什么?
Swift 的 extension 虽然在命名上承袭了 Objective-C,但其底层逻辑更接近于“编译时静态能力的注入”,且在类型安全和协议扩展方面远比 Objective-C 强大。 我们可以通
10-2.【OC】【extension】Extension 与 Category 的底层区别是什么?
从底层视角看,Extension 和 Category 的区别不仅仅是“能不能加成员变量”,而是编译时静态合并与运行时动态注入的本质差异。 1. 核心区别:合并时机 Extension:编译期的“内生
10-1.【OC】【extension】Objective-C class extension 的真实用途是什么?
Class Extension(类扩展)在 Objective-C 中常被称为“匿名分类”(Anonymous Category),但其核心价值与普通分类(Category)完全不同。它的真实用途可以
9-5.【OC】【Category】在大型项目中,如何避免 Category 冲突?
在大型项目中,Category 冲突是一个典型的“编译通过,运行崩盘”的隐患。由于 Objective-C 的平坦方法列表机制,一旦发生冲突,调试成本极高。 要规避这些问题,需要从工程规范、命名策略和
9-4.【OC】【Category】Category + load 方法的调用顺序规则是什么?
在 Objective-C 中,+load 方法是一个极其特殊的机制。与普通方法遵循“分类覆盖原类”的规则不同, +load 方法是“人人有份,按序执行” 。 Runtime 在启动时会直接通过函数指
9-3.【OC】【Category】Category 冲突的底层原因是什么?
Category 冲突(即多个 Category 实现了同名方法,导致只有一个生效)的底层原因,源于 Runtime 加载机制中的“覆盖式”内存操作 以及 方法查找的线性遍历逻辑。 我们可以从 数据结
9-2.【OC】【Category】Category 方法覆盖原有方法的规则是什么?
在 Objective-C 中,Category 覆盖原类方法的规则是面试中的高频考点。理解这个规则的关键在于:这不是真正的“覆盖(Override)”,而是“遮蔽(Shadowing)”。 以下是底
9-1.【OC】【Category】Category 可以做什么?不能做什么?
在 Objective-C 中,Category(分类) 是一种极其灵活的运行时机制,它允许你在不改变原类源码、不继承原类的情况下,动态地为现有的类添加功能。 我们可以将其核心能力概括为:“能扩展行为
8-7.【OC】【NSOperation】在复杂依赖场景下,NSOperationQueue 可能出现哪些坑?
在处理复杂的 NSOperation 依赖时,系统虽然提供了强大的管理能力,但由于其基于 状态机 和 KVO 的特性,在极端场景下会出现一些隐蔽且致命的陷阱。 以下是四个最核心的“坑”: 1. 循环依
8-6.【OC】【NSOperation】NSBlockOperation 内部如何管理多个 block?
NSBlockOperation 是 NSOperation 的一个非常实用的子类。它的独特之处在于,它不仅能执行一个任务,还能通过 addExecutionBlock: 动态地追加多个 Block。
8-5.【OC】【NSOperation】NSOperation 的优先级是如何影响调度的?优先级是硬约束还是软提示?与 QoS 的区别?
在 NSOperation 的世界里,优先级决定了谁能“插队”,但它并不是万能的。理解它的运作机制需要区分 队列内优先级 和 系统级资源分配。 1. 优先级是硬约束还是软提示? NSOperation
8-4.【OC】【NSOperation】NSOperation 的取消机制是如何工作的?
NSOperation 的取消机制(Cancellation)并非“强制中断”,而是一种基于 状态标记 的 “协作式(Cooperative)” 停止。它更像是一个礼貌的请求,而不是一个暴力的进程杀手
8-3.【OC】【NSOperation】NSOperation 的依赖关系是如何实现的?
NSOperation 的依赖关系(Dependencies)是其相对于 GCD 最具竞争力的特性。它允许我们将复杂的业务逻辑拆解为多个独立的原子操作,并像“搭积木”一样将它们连接起来。 其内部实现主
下一页