我读到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究竟如何表现?