12 2021 档案
摘要:kvc本质 KVC KVC: 全称Key-Value Coding,也称为键值编码。 KVC可以通过一个key间接访问某个对象属性。 KVC有两个特性: 可以访问私有成员变量; 可以修改私有或者系统的成员属性; KVC有以下四种方法: - (void)setValue:(nullable id)va
阅读全文
摘要:KVO的本质 KVO全称Key-Value Observing,键值监听。 KVO是OC对观察者设计模式的一种实现,注册一个观察者时,调用addObserver: forKeyPath:options: context:,观察者观察A的属性,系统在运行时,动态创建一个NSKVONotifying_A
阅读全文
摘要:在OC中,类对象(class对象)和元类对象(meta-class对象)的本质结构都是struct objc_class指针,即在内存中就是结构体。 Class clas = [NSObject class]; 来到class底层源码,我们可以看到: typedef struct objc_clas
阅读全文
摘要:iOS底层原理探索—OC对象的本质 面试题 一个NSObject对象占用多少内存? 答:统会为一个NSObject对象分配最少16个字节的内存空间。一个指针变量所占用的大小(64bit占8个字节,32bit占4个字节) 系统分类了16个字节给NSObject对象(通过malloc_size函数获得)
阅读全文