iOS面试指南:消息发送的步骤

本文深入探讨Objective-C运行时系统,尤其是消息发送的步骤、消息转发机制,包括动态方法解析和快速、标准转发。通过运行时API,可以实现如路由、动态添加/交换方法等功能,同时在遇到未识别选择器时提供崩溃防护策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

运行时API的应用:

  1. 路由的实现(接口控制app跳任意界面)
  2. 获取修改对象的成员属性
  3. 动态添加/交换方法的实现: https://blog.csdn.net/z929118967/article/details/78019668
  4. 属性关联: https://blog.csdn.net/z929118967/article/details/78033027
  5. iOS 间接实现多继承的方式:消息转发、类别、delegate和protocol(委托协助主体完成操作任务,将需要定制化的操作预留给委托对象来自定义实现 与block类似) 。

I runtime的作用

因为objective-c是一门动态语言,也就是说只有编译器是不够的,还需要一个运行时系统(runtime system)来执行编译后的代码。

runtime简称运行时,其中最主要的就是消息机制。

对于编译期语言,会在编译的时候决定调用哪个函数。对于OC的函数,是动态调用的,在编译的时候并不能决定真正调用哪个函数,只有在运行时才会根据函数的名称找到对应的函数来调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java、iOS、Vue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值