iOS底层学习-Day_03
问题
对象的isa指针指向哪里?
instance对象的isa指向class对象
class对象的isa指向meta-class对象
meta-class对象的isa指向基类的meta-class对象
OC的类信息存放在哪里?
对象中成员变量的具体值,存放在对象instance
对象方法、属性、成员变量、协议信息,存放在class(类)
类方法,存放在meta-class对象中
窥探struct objc_class的结构

对象方法 和 类方法
- 调用对象方法 : 调用到类方法列表中的的对象方法
 - 当调用对象方法时,通过instance的isa找到class,最后找到对象方法的实现进行调用
 
LZPerson *person = [[LZPerson alloc] init]; person->_age = 10; //1.一般调用 [person personInstanceMethod]; //2.rutime本质的调用 objc_msgSend(person, @selector(personInstanceMethod));
- 调用到类中的的类方法 : 调用到元类方法列表中的的类方法
 
//1.一般调用 [LZPerson personClassMethod]; //2.rutime本质的调用 objc_msgSend([LZPerson class], @selector(personClassMethod))
- 子类的实例对象调用父类的实例对象方法
 
//1.一般调用 [student personInstanceMethod]; //2.rutime本质的调用 objc_msgSend([LZStudent class], @selector(personInstanceMethod))
                    
                
                
            
        
浙公网安备 33010602011771号