如果我的邏輯錯誤,請糾正我。關於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