我读到isa
指针在消息中查找实例方法,以检查类及其超类中是否确实存在该方法。所以我的问题是,它在对象中实现了什么?
答案 0 :(得分:1)
请注意,您不应直接访问isa
指针以获取对象类,而是使用objc_getClass()
。例如,在ARM64中,isa
字段除了类指针之外还包含其他标志(最值得注意的是对象的引用计数,如果它足够小)。有关详细信息,请参阅this post by Mike Ash。
答案 1 :(得分: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;
}