isa的指向流程:
NSObejct:实例对象的isa指向 元类,元类的isa指向根元类,根元类的isa指向自己
继承:实例对象的isa指向类,类的isa指向元类,元类的isa指向根元类,根元类的isa指向自己
普通的情况:实例对象的isa指向类,类的isa指向元类,元类的isa指向根元类,根元类的isa指向自己

什么是元类?
元类没有固定的概念,元类的创建和定义都是由编译器自动完成,类的归属来自于元类,所有的类方法存储都是元类来完成
类对象和类信息在内存里面存在几份? :只有一份
NSObject ——> 继承于nil

所有的对象 + 类 + 元类都有isa
objc_object(结构体) 与对象的关系?
所有的对象都是objc_object继承过来的,objc_object来自于底层的C/C++
objc_object(根类)与objc_class的关系?objc_class 继承objc_object
什么是属性?什么是成员变量?什么是实例变量?
属性:@property获取,会自己生成get,set方法 成员变量:是否有下划线,ivars获取
实例变量:能实例化的变量(类的实例化)
copy 和 strong生成的属性的区别?
底层的set方法不一样、copy的set方法调用了objc_setProperty,strong用(*(NSString **)((char*)self + OBJC_IVAR_$_WHYCar$_title))

网友评论