![240](https://upload.jianshu.io/users/upload_avatars/4824593/e14e3dea-1f9d-4d47-b536-a39e0b985260.png?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
在我們前面的幾章中驹饺,分析了OC的runtime一些底層的數(shù)據(jù)結(jié)構(gòu)以及實(shí)現(xiàn)機(jī)制弹囚。今天陋气,我們就從一個(gè)OC對(duì)象的生命周期的角度郊闯,來(lái)解析在runtime...
在runtime中庸疾,有四個(gè)數(shù)據(jù)結(jié)構(gòu)非常重要羹膳,分別是SideTables胖齐,SideTable业踢,weak_table_t和weak_entry_t栗柒。...
前言 提起弱引用泻轰,大家都知道它的作用:(1)不會(huì)添加引用計(jì)數(shù) (2)當(dāng)所引用的對(duì)象釋放后盖桥,引用者的指針自動(dòng)置為nil那么捉超,圍繞它背后的實(shí)現(xiàn)邓厕,是怎...
本文的內(nèi)容主要是基于Clang編譯器的官方文檔所寫(xiě)剧浸。 在開(kāi)始探索Block的本質(zhì)之前揍拆,大家先試著分析一下泞歉,下面的代碼會(huì)輸出什么: 如果你對(duì)輸出結(jié)...
使用KVO 自動(dòng)觸發(fā)KVO 在平日代碼中雨女,我們通過(guò)KVO來(lái)監(jiān)視實(shí)例某個(gè)屬性的變化锰提。比如曙痘,我們要監(jiān)視Student 的 age屬性,可以這么做: ...
在我們的App代碼中立肘,XCode會(huì)自動(dòng)創(chuàng)建一個(gè)main.m文件边坤,其中定義了main函數(shù) 這里的main函數(shù)是我們整個(gè)App的入口,它的調(diào)用時(shí)機(jī)甚...
在前傳1中谅年,我們分析了解了XNU內(nèi)核所支持的二進(jìn)制文件格式Mach-O惩嘉。同時(shí)還留了一個(gè)小尾巴,就是Mach-O文件中和Objective-C以及...
Mach-O Mach-O是Mach Object文件格式的縮寫(xiě)踢故。它是用于可執(zhí)行文件文黎,動(dòng)態(tài)庫(kù)惹苗,目標(biāo)代碼的文件格式。作為a.out格式的替代耸峭,Ma...
autoreleasepool 在iOS中桩蓉,除了需要手動(dòng)retain,release(現(xiàn)在已經(jīng)交給了ARC自動(dòng)生成)外劳闹,我們還可以將對(duì)象扔到自動(dòng)...