(杂记)父类的property是如何查找的?

3,260 阅读1分钟
@interface Person : NSObject
{
    NSObject *bbbbb;
}
@property (nonatomic, strong) NSObject *aaaaaa;

@end

@implementation Person

@end
@interface Teacher : Person

@end

@implementation Teacher

@end

clang编译后

struct Person_IMPL {
	struct NSObject_IMPL NSObject_IVARS;
	NSObject *bbbbb;
	NSObject *_aaaaaa;
};


struct Teacher_IMPL {
	struct Person_IMPL Person_IVARS;
};

1.子类中的propert_list、method_list、ivar_list并不包含父类

2.子类对象的_IMPL包含父类的