个人复习资料 - Sr/Staff iOS Engineer 面试准备
-
- 系统架构、RunLoop、Runtime、App 启动、内存管理
-
- UIView/CALayer、事件响应链、渲染流水线、离屏渲染、列表优化
-
- HTTP/HTTPS、TLS 握手、HTTP/2、NSURLSession、缓存策略
-
- 沙盒结构、UserDefaults/SQLite/Core Data/Realm、LRU 缓存
-
- GCD 原理、死锁分析、barrier/group/semaphore、线程安全
-
- 内存管理、Block 机制、Category、KVC/KVO、weak 原理
-
- 值类型/引用类型、COW、分发机制、some/any、错误处理、@propertyWrapper、OC 互操作
-
- async/await、结构化并发、Actor、Sendable、AsyncSequence、Combine
-
- 启动优化、卡顿监控、内存优化、包体积优化
-
- MVC/MVVM/VIPER、组件化、编译优化、CI/CD、监控体系
- isa 指针的作用?Runtime 消息转发流程?
- RunLoop 的应用场景?App 启动优化策略?
- UIView 和 CALayer 的区别?
- 离屏渲染的触发条件?如何优化列表滚动性能?
- 主队列 sync 为什么死锁?
- barrier 如何实现读写锁?atomic 能保证线程安全吗?
- Block 的类型和循环引用?weak 指针如何自动置 nil?
- Category 和 Extension 的区别?KVO 的实现原理?
- struct 和 class 的区别?Copy-on-Write 是什么?
some和any的区别?静态分发 vs 动态分发? - async/await 和 GCD 的区别?Actor 如何保证线程安全?Sendable 是什么?
- 如何监控和定位卡顿?启动时间优化?
- 内存泄漏和 OOM 的区别?包体积优化?
- 如何设计大型项目架构?组件化路由如何实现?
- 如何保证代码质量?如何搭建监控体系?
结论先行 → 原理解释 → 实战关联 → 拓展延伸
示例:
问:什么是离屏渲染?
答:
- 离屏渲染是 GPU 在屏幕缓冲区之外另开缓冲区渲染
- 某些效果需要多次渲染才能完成(如圆角裁剪)
- 项目中通过 shadowPath、预渲染圆角图片等方式避免
- iOS 9 后单独 cornerRadius 不触发,但配合 masksToBounds 会触发
- 每章都有完整的代码示例
- 重点内容有源码级解析
- 高频问题有标准答案
- 技术方案有对比表格