
在我們前面的幾章中,分析了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自動生成)外,我們還可以將對象扔到自動...