Objective-C 知识体系概览
问题
Objective-C 的核心知识包含哪些?面试中重点考察什么?
答案
为什么还需要学 OC?
尽管 Swift 是 Apple 主推的语言,但 OC 在 iOS 开发中仍然重要:
- 存量代码:大量商业项目仍有大量 OC 代码
- 系统框架:UIKit、Foundation 等底层用 OC 写的
- Runtime:理解 OC Runtime 是深入 iOS 的基础
- 混编项目:Swift 与 OC 混编是常态
知识体系
面试重点分布
| 知识点 | 面试频率 | 难度 |
|---|---|---|
| Runtime 基础 | ⭐⭐⭐⭐⭐ | 中 |
| 消息机制与转发 | ⭐⭐⭐⭐⭐ | 高 |
| Category & Extension | ⭐⭐⭐⭐ | 中 |
| KVC / KVO | ⭐⭐⭐⭐ | 中 |
| Block | ⭐⭐⭐⭐⭐ | 高 |
| 内存管理 | ⭐⭐⭐⭐⭐ | 高 |
| 属性与修饰符 | ⭐⭐⭐⭐ | 低 |
学习路径
推荐阅读顺序
- Runtime 基础 → 理解 isa、类对象、元类对象
- 消息机制 → objc_msgSend 的查找过程
- Block → Block 类型、内存管理、循环引用
- KVC / KVO → 底层原理(isa-swizzling)
- Category → 加载时机、方法覆盖
- 内存管理 → ARC 规则、Autorelease Pool
- 属性 → 修饰符语义