240 发简信
  • 120
    一道OC综合题的反思

    前言 这是一道很有意思的题,题目来自群友,据说原题出自sunny。自以为是的解答这道题后,群友抛出一个新的问题,发现之前的解释行不通,遂有此文。...

  • 120
    对super关键字的小验证

    前言 你知道objc_msgSendSuper2(注意,不是objc_msgSendSuper)吗?如果不知道,这篇小文有必要看一下。 0x00...

  • 120
    Objective-C对象成员变量是如何存取的

    之前写过一篇文章 Objective-C对象内存分布是怎样确定的,作为姊妹篇,两者配合食用口味更佳。 0x00 API 在runtime.h中可...

  • 120
    一段weak代码引发的探索

    话不多说,直接看代码 0x00 code 看到输出结果后直接傻眼,脑子里迅速产生了几个疑问: 为什么输出的两个值不一样? 2是哪来的? 2后面是...

  • 120
    一文吃透autorelease

    全文速览 引子 activities与order的含义 _wrapRunLoopWithAutoreleasePoolHandler反汇编分析 ...

  • 120
    Objective-C对象内存分布是怎样确定的

    对于一个类的实例变量来说,我们常说他的内存分布是isa + ivars。为什么内存是这样分布的?他是怎样确定的? 本文采用源码为当前最新:obj...

  • 120
    TaggedPointer的推理与验证

    TaggedPointer是苹果推出的一种通过指针来存储少量数据的技术,可以有效避免内存浪费。 本文所用源码为objc4-756.2,macOS...

  • 120
    通过lldb来说符号表绑定与fishhook

    fishhook,facebook开源的一个可以动态绑定Mach-O符号表的库。在程序启动时与运行时会通过dyld来绑定符号表(这里有非懒加载与...

  • 120
    通过lldb与runtime再谈KVO

    KVO,苹果的一种键值监听实现技术。Key-Value Observing Implementation Details中有如下描述: Auto...