iOS开发高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约5.53千字
  • 约 8页
  • 2026-10-12 发布于河北
  • 举报

iOS开发高频面试题及详细答案(实战版).docx

iOS开发高频面试题及详细答案(实战版)

一、Objective-C基础核心面试题

1.讲一下OC的消息机制,objc_msgSend执行流程

OC本质是消息传递机制,所有方法调用本质都是给对象发送消息,核心函数是objc_msgSend。整体执行流程分为三步:

第一步:查找方法缓存

调用方法时,首先通过对象的isa指针找到对应的类对象,优先在类的方法缓存列表(cache)中查找方法实现。缓存采用哈希表存储,查询速度极快,如果命中直接执行方法,结束流程。

第二步:查找方法列表

缓存未命中时,遍历当前类的methodList方法列表查找,如果找到,将方法加入缓存,再执行方法。如果当前类没有该方法,沿着父类指针逐级向上查找父类的方法列表,直到根类NSObject。

第三步:消息动态解析与转发

如果整个继承链都找不到方法,不会直接崩溃,会进入OC的消息容错机制:

1.动态解析:调用+resolveInstanceMethod:或+resolveClassMethod:,开发者可以动态添加方法实现;

2.快速转发:调用-forwardingTargetForSelector:,可以将消息转发给其他对象处理;

3.完整转发:调用-methodSignatureForSelector:生成方法签名,再通过-forwardInvocation:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档