在我们前面的几章中,分析了OC的runtime一些底层的数据结构以及实现机制。今天,我们就从一个OC对象的生命周期的角度,来解析在runtime...
在runtime中,有四个数据结构非常重要,分别是SideTables,SideTable,weak_table_t和weak_entry_t。...
前言 提起弱引用,大家都知道它的作用:(1)不会添加引用计数 (2)当所引用的对象释放后,引用者的指针自动置为nil那么,围绕它背后的实现,是怎...
本文的内容主要是基于Clang编译器的官方文档所写。 在开始探索Block的本质之前,大家先试着分析一下,下面的代码会输出什么: 如果你对输出结...
使用KVO 自动触发KVO 在平日代码中,我们通过KVO来监视实例某个属性的变化。比如,我们要监视Student 的 age属性,可以这么做: ...
在我们的App代码中,XCode会自动创建一个main.m文件,其中定义了main函数 这里的main函数是我们整个App的入口,它的调用时机甚...
在前传1中,我们分析了解了XNU内核所支持的二进制文件格式Mach-O。同时还留了一个小尾巴,就是Mach-O文件中和Objective-C以及...
Mach-O Mach-O是Mach Object文件格式的缩写。它是用于可执行文件,动态库,目标代码的文件格式。作为a.out格式的替代,Ma...
autoreleasepool 在iOS中,除了需要手动retain,release(现在已经交给了ARC自动生成)外,我们还可以将对象扔到自动...