美文网首页
2025-08-29

2025-08-29

作者: 加州旅馆1116 | 来源:发表于2025-08-28 11:35 被阅读0次

    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 在组件化中的作用?

    相关文章

      网友评论

          本文标题:2025-08-29

          本文链接:https://www.haomeiwen.com/subject/gedeajtx.html