在Objective C中,消息传递是通过运行时(runtime)来实现的。每个对象在运行时都有一个isa指针,指向其类对象。而类对象中,则包含了方法列表(method list),其中记录了类中的方法和属性信息。当我们向一个对象发送消息时,实际上就是在运行时动态查找方法并调用。具体的流程如下:
1.发送消息时,首先从对象的isa指针中获取类对象。
2.然后在类对象的方法列表中查找与消息对应的方法。
3.如果找到了对应方法,则执行该方法;如果没有找到,则继续在父类的方法列表中查找,直到找到对应方法或者已经到达NSObject类为止。
4.如果最终还没有找到对应方法,则会触发消息转发机制。在消息转发机制中,我们可以选择动态添加方法或者将消息转发给其他对象进行处理。
总体来说,Objective C中的消息传递机制非常灵活,可以在运行时动态添加方法,或者通过消息转发机制实现更加灵活的程序设计。