我讀到isa
指針查找消息中的實例方法,以檢查類和它們的超類中是否真的存在該方法。所以我的問題是,它在對象中實現了什麼?在對象中實現的isa指針究竟在哪裏?
0
A
回答
1
請注意,你不應該直接訪問isa
指針以獲取對象類,但改爲使用objc_getClass()
。例如,在ARM64中,除了類指針外,isa
字段還包含其他標誌(最顯着的是對象的引用計數,如果它足夠小的話)。有關更多詳細信息,請參見this post by Mike Ash。
0
如果在運行時的一類,你會遇到這樣看...
typedef struct objc_class *Class;
typedef struct objc_object {
Class isa;
} *id;
編輯:
而且在NSObject.h
/*********** Base class ***********/
NS_ROOT_CLASS
@interface NSObject <NSObject> {
Class isa;
}
相關問題
- 1. 這個XSD究竟在哪裏出錯?
- 2. 究竟在哪裏得到加載DLL?
- 3. 遊戲究竟在哪裏開始?
- 4. 在Go中實現的函數值('函數指針')究竟如何?
- 5. LazyEvalutaion的性能優勢究竟在哪裏出現?
- 6. 變量引用的實例究竟在哪裏?
- 7. 究竟我點擊了哪個對象?
- 8. JPEG原始塊中的「元數據」邊界究竟在哪裏?
- 9. Java的版本和JVM之間的區別究竟在哪裏?
- 10. 尊重CMT的JTA事務劃分究竟在哪裏?
- 11. 指針和對象的實現
- 12. 實現IHierarchyData時在哪裏指定URL
- 13. C++:究竟是什麼「:」在這裏做?
- 14. 我究竟在哪裏放置源代碼頭?
- 15. GCD究竟是什麼,應該在哪裏使用?
- 16. 在Java中,源代碼到字節碼的編譯究竟發生在哪裏?
- 17. Array.map的實現在哪裏?
- 18. System.ServiceModel.ServiceHost.Dispose()的實現在哪裏?
- 19. 指針中(星號)的用途究竟是什麼?
- 20. 究竟哪個對象導致「對象引用未設置爲對象的實例」?
- 21. 存儲ISA的位置以及它究竟如何考慮?
- 22. 存儲對象實例在哪裏?
- 23. DDD:在哪裏創建實體對象?
- 24. django中的related_name究竟是什麼?落後的關係在哪裏?
- 25. Javascript超時對象究竟是什麼?
- 26. jquery究竟返回什麼對象?
- 27. 每個對象在Quickblox Android私聊中究竟做了什麼?
- 28. Scalaz Bind.bind在哪裏實現?
- 29. OutputStream實現在哪裏
- 30. 'reference'typedef究竟如何表現?