xinrong2019 / xinrong2019.github.io

My Blog
https://xinrong2019.github.io
1 stars 1 forks source link

20190527 IOS开发之OC方法调用原理 #30

Open xinrong2019 opened 5 years ago

xinrong2019 commented 5 years ago

OC方法调用方式

假设有一个类Person:

Person *person = [Person new];

如下两个调用分别是对象调用和类调用:

[person eat];
[Person personWithName:@"Tom"]

OC方法调用机制

OC方法调用实际上就是在给接收者发送消息

[接收者 消息];

OC语言内部维护一个方法表,方法表中存的是各方法的逻辑实现在内存中的地址。

当客户端给接收者发送消息的时候,首先会根据方法表找到方法的指针,找到其在内存中的位置,执行该方法的逻辑实现。