240 发简信
IP属地:河南
  • Resize,w 360,h 240
    void *obj = &cls

    void *obj = &cls 方法调用成功原理分析: 我们知道,在arm64以后实例对象的ISA指针&ISA_MASK指向的是类对象,通过K...

  • @synthesize和@dynamic

    @synthesize和@dynamic 从结构体成员信息分析 如果通过@synthesize修饰,指定了变量_age,可以看到系统会自动给KY...

  • objc_dealloc流程及处理逻辑

    源码分析 dealloc dealloc方法中调用了_objc_rootDealloc方法 _objc_rootDealloc _objc_ro...

  • objc_msgSend发送消息的三个阶段

    总结 消息发送分为三个阶段 消息发送通过objc_msgSend方式发送消息方法查找,先从cache中查找,找不到从class_rw_t方法列表...

  • RunLoop底层源码分析

    定义 RunLoop本质上是一个do-while循环 RunLoop状态 kCFRunLoopEntry kCFRunLoopBeforeTim...

  • Block底层结构分析

    Block底层结构分析 定义 block 是封装了函数调用及函数调用环境的OC对象 源码 clang指令后的cpp文件代码 通过代码可以看到,b...

  • load方法理解

    源码 _objc_init load_images prepare_load_methods schedule_class_load add_c...

  • initialize方法理解

    源码 class_getInstanceMethod lookUpImpOrForward initializeNonMetaClass cal...

  • KVC原理

    KVC赋值原理 调用方式 逻辑处理 总结 如果通过KVC给一个对象的的key赋值 首先会查找该对象是否有对应的setKey方法,如果有调用赋值 ...