Runtime就是將面向?qū)ο箝_發(fā)轉(zhuǎn)換為面向過程
(一)instance萎战,classObject材部,metaClass
對(duì)象的isa指針指向自己的元類(metaClass)照皆;對(duì)象的superClass指向自己的父類伤疙;
(二)消息發(fā)送
1.根據(jù)實(shí)例對(duì)象的isa指針找到類對(duì)象悼吱。
2.類對(duì)象的消息解析:
? ? ? 查看類對(duì)象的cache是否存在該方法慎框。如果存在,直接調(diào)用后添;如果不存在笨枯,進(jìn)入下一步。
? ? ? 查看類對(duì)象class_rw_t是否有該方法遇西。如果存在馅精,調(diào)用并添加到cache;如果不存在粱檀,進(jìn)入下一步洲敢。
? ? ? 查看父類的cache是否存在該方法。如果存在茄蚯,調(diào)用并添加到消息接收者的cache压彭;如果不存在,進(jìn)入下一步第队。
? ? ? 查看父類class_rw_t是否有該方法哮塞。如果存在,調(diào)用并添加到消息接收者cache凳谦;如果不存在,進(jìn)入下一步衡未。
以此類推尸执,直到找到根類。
如果在3缓醋、4及其它父類中找到該方法如失,會(huì)將其添加到消息接收者的cache,即 receiver 的cache送粱。