我读到isa
指针在消息中查找实例方法,以检查类及其超类中是否确实存在该方法。所以我的问题是,它在对象中的哪里实现?
问问题
434 次
2 回答
1
请注意,您不应该isa
直接访问指针来获取对象类,而是使用objc_getClass()
。例如,在 ARM64 中,isa
除了类指针之外,该字段还包含其他标志(最显着的是对象的引用计数,如果它足够小)。有关更多详细信息,请参阅Mike Ash 的这篇文章。
于 2013-10-11T09:54:03.643 回答
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;
}
于 2013-10-11T09:49:12.033 回答