【发布时间】:2009-11-08 16:43:53
【问题描述】:
我知道 Objective-C 对所有方法调用都使用动态绑定。这是如何实施的? Objective-c 是否在编译前“转换为 C 代码”,并且对所有内容都使用 (void*) 指针?
【问题讨论】:
-
objective-c 运行时是开源的,顺便说一句。它使阅读变得有趣。 objc_msgSend() 实际上是一个小程序集,它使用尾调用优化来进行调度,以消除调用时重写堆栈帧的需要。相当快。
标签: objective-c dynamic-binding