2025-08-29

OC部分:

  1. GCD 的核心概念
    • 同步(sync)和异步(async)的区别?串行队列和并发队列的区别?
    • 什么是 DispatchGroup?如何实现多任务依赖?
    • 主线程队列和全局队列的优先级如何管理?
  2. 线程安全与锁
    • 如何避免多线程环境下的资源竞争?
    • @synchronized、NSLock、OSSpinLock、信号量(dispatch_semaphore)的区别及适用场景?
    • 读写的时候使用 nslock
    • 什么是优先级反转(Priority Inversion)?如何解决?
  3. 自动释放池(Autorelease Pool)
    • 自动释放池的工作原理是什么?何时释放对象?
    • 在什么场景下需要手动创建 @autoreleasepool? -如何添加
    • 循环中创建大量临时对象时,如何优化内存管理?
  4. 函数调用过程
    • Objective-C 的消息传递机制(Messaging)是如何实现的?objc_msgSend 的作用?
    • 方法查找过程(方法列表、父类逐级查找)及方法转发流程(resolveInstanceMethod、forwardingTargetForSelector、methodSignatureForSelector)?
    • Swift 的函数调用与 Objective-C 的消息机制有何不同?

Swift 部分:

  1. 值类型与引用类型
    • 结构体(struct)和类(class)的核心区别?值类型的写时复制(Copy-on-Write)机制是如何工作的?
    • 如何选择使用值类型还是引用类型?
    • 值类型在函数参数传递时的行为(如 inout 关键字的作用)?
  2. 函数派发方式
    • Swift 的静态派发(Static Dispatch)和 动态派发(Dynamic Dispatch)的区别?
    • final、@objc、dynamic 关键字对函数派发的影响?
    • Protocol Extension 中的方法派发规则?
  3. 响应式编程(Reactive Programming)
    • 什么是响应式编程?RxSwift 或 Combine 的核心概念(Observable、Observer、Operator)?
    • 内存管理 -
    • 如何用响应式编程解决异步事件嵌套(Callback Hell)问题?
    • 响应式编程与传统委托模式(Delegate)的对比?

架构部分:

  1. 设计模式

  2. 指导思想

  3. 组件化

    • 组件化的核心目标是什么?如何实现模块解耦?
    • 常见的路由方案(如 URL Scheme、CTMediator、Target-Action)的优缺点?
    • 如何管理组件间的依赖关系?CocoaPods 与 Carthage 在组件化中的作用?
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 近期整理的iOS面试题。不定期更新中。如有问题,欢迎斧正。 派发 Swift 有三种派发方式 1静态派发 2消息派...
    程序狗旭旭旭阅读 5,760评论 0 4
  • 一、谈谈Runtime 1、OC是一门动态性比较强的编程语言,允许很多操作推迟到程序运行时再进行 2、OC的动态性...
    奋斗的小马达阅读 3,486评论 0 1
  • iOS面试题 [toc] 一、设计基本原则 简述六大设计基本原则(也称 SOLID 五大原则) 单一职责原则 (S...
    JamieChen阅读 4,023评论 0 6
  • 一、Objective - C基础 请简述Objective - C中类和对象的区别类是对象的抽象模板,定义了对象...
    MT_suny阅读 7,278评论 0 6
  • 一、Objective-C & Swift 基础 1. ★ Objective-C 中 #import 和 #in...
    王看山阅读 1,198评论 0 0

友情链接更多精彩内容