我想知道 Objective C 动态消息传递系统的典型(或至少是 Apple 的)实现是什么样子的。选择器在编译和运行时如何处理,NSObject*
真正指向什么,如何在其中找到方法实现。
在C++中,我们有虚函数;它们是如何实现的正式是一个实现细节,但实际上作为第一个数据成员的 VF 表指针几乎是给定的。我想知道是否有类似的普遍方式来实现 ObjC 的类系统。
最佳答案
这可能会很长。 ughoavgfhw 的回答是一个好的开始。
我建议阅读以下博客文章:
- bbum 的 objc_msgSend() 教程部分 1 , 2 , 3 , 4
- 麦克阿什的 Friday Q&A 2009-03-20: Objective-C Messaging
如果您不害怕深入研究源代码,objc和 clang可在 Apple’s Open Source Web site 获得.
关于objective-c - 典型的 Objective C 消息实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132999/