void *obj = &cls 方法调用成功原理分析: 我们知道,在arm64以后实例对象的ISA指针&ISA_MASK指向的是类对象,通过K...
@synthesize和@dynamic 从结构体成员信息分析 如果通过@synthesize修饰,指定了变量_age,可以看到系统会自动给KY...
源码分析 dealloc dealloc方法中调用了_objc_rootDealloc方法 _objc_rootDealloc _objc_ro...
总结 消息发送分为三个阶段 消息发送通过objc_msgSend方式发送消息方法查找,先从cache中查找,找不到从class_rw_t方法列表...
定义 RunLoop本质上是一个do-while循环 RunLoop状态 kCFRunLoopEntry kCFRunLoopBeforeTim...
Block底层结构分析 定义 block 是封装了函数调用及函数调用环境的OC对象 源码 clang指令后的cpp文件代码 通过代码可以看到,b...
源码 _objc_init load_images prepare_load_methods schedule_class_load add_c...
源码 class_getInstanceMethod lookUpImpOrForward initializeNonMetaClass cal...
KVC赋值原理 调用方式 逻辑处理 总结 如果通过KVC给一个对象的的key赋值 首先会查找该对象是否有对应的setKey方法,如果有调用赋值 ...