如果我的逻辑错误,请纠正我。关于objc运行时的疑问
在java中我们可以这样调用
Object.doSomething(); // here we call method directly
方法在objc我们做
[object doSomething];
这里DoSomething的消息被发送到对象。据我所知,每个对象都有一个指向对象类的指针。 Objc运行时使用该指针来检查对象类是否有这样的方法如果没有,检查它的父级等。如果找到一个方法objc_msgSend被调用。
这里我很困惑。
Java中的方法调用和Objc中的消息之间有什么区别?
他们之间有什么优势/劣势?
Java方法调用实际上并未在编译时绑定。反思和其他事情可以改变方法调用发生的情况,所以这个答案实际上是无效的。 – 2012-08-30 14:37:18