Runloop應用: Timer失效問題; 線程保活; Runloop的運行邏輯: 入口函數 通知Observers:進入Loop; 通知Observers:即將處理Time...

Runloop應用: Timer失效問題; 線程保活; Runloop的運行邏輯: 入口函數 通知Observers:進入Loop; 通知Observers:即將處理Time...
objc_msgSend()實現 3. 消息轉發:__forwarding__ 這個階段代碼沒有開源,這里有一份國外整理的偽代碼(提取碼: du9w). 以下方法都有實例方法...
傳送門: Runtime的幾個常規應用 類相關: 動態創建一個類(參數:父類,類名,額外的內存空間) Class objc_allocateClassPair(Class s...
場景如下: 當離開作用域時,person對象銷毀,所以“1”號線消失; “2”、“3”因為是強引用,所以相互持有,對方都不會得到釋放。 解決: RAC 環境下: __weak...
Category的原理 Category編譯之后的底層結構是struct category_t,里面存儲著分類的對象方法、類方法、屬性、協議信息; 在程序運行的時候,runt...
+initialize方法會在類第一次接收到消息時調用; 調用順序: 先調用父類的+initialize,再調用子類的。(先初始化父類,再初始化子類,每個類只會初始化1次。)...