一、寄存器編程代碼 1.實(shí)例 在某些組件運(yùn)用到了寄存器相關(guān)編程,目的是為了調(diào)出當(dāng)前運(yùn)行堆棧,部分應(yīng)用代碼如下: 直接拿到 __ss 對(duì)應(yīng)結(jié)構(gòu)體看到 (以手機(jī)真機(jī)運(yùn)行環(huán)境舉例)...
一、寄存器編程代碼 1.實(shí)例 在某些組件運(yùn)用到了寄存器相關(guān)編程,目的是為了調(diào)出當(dāng)前運(yùn)行堆棧,部分應(yīng)用代碼如下: 直接拿到 __ss 對(duì)應(yīng)結(jié)構(gòu)體看到 (以手機(jī)真機(jī)運(yùn)行環(huán)境舉例)...
Runloop處理事件模型 RunLoop 的運(yùn)行邏輯 01、通知Observers:進(jìn)入Loop 02、通知Observers:即將處理Timers 03、通知Observ...
什么是一個(gè)Runloop 是通過(guò)內(nèi)部維護(hù)的事件循環(huán)(==用戶態(tài) 和 內(nèi)核態(tài) 相互轉(zhuǎn)換==)來(lái)對(duì)事件或消息進(jìn)行管理的一個(gè)對(duì)象 事件循環(huán)是什么? 一個(gè)UI事件,一個(gè)timer,一...
什么是引用計(jì)數(shù)? 當(dāng)我們創(chuàng)建一個(gè)新對(duì)象時(shí),它的引用計(jì)數(shù)為1 當(dāng)有一個(gè)新的指針指向這個(gè)對(duì)象時(shí),我們將引用計(jì)數(shù)加1 當(dāng)某個(gè)指針不再指向這個(gè)對(duì)象時(shí),我們將引用計(jì)數(shù)減1 當(dāng)對(duì)象的引用...
@autoreleasepool 原理 ==@autoreleasepool== 實(shí)現(xiàn)原理:以棧為節(jié)點(diǎn)通過(guò)雙向鏈表形式組合而成的 編譯期 @autoreleasepool {...
==1.@synchronize== 用于單例創(chuàng)建,使多線程下保證唯一對(duì)象 代碼塊可用于數(shù)組中唯一線程讀寫(xiě) ==2.atomic== 是對(duì)象的屬性關(guān)鍵字,負(fù)責(zé)對(duì)象的原子性操作...
MRC 底層實(shí)現(xiàn)是否一樣 自己生成的對(duì)象,自己持有 在iOS內(nèi)存管理中有四個(gè)關(guān)鍵字,alloc、new、copy、mutableCopy,自身使用這些關(guān)鍵字產(chǎn)生對(duì)象,那么自身...
==@property== 我們聲明一個(gè)屬性str的時(shí)候(@property),在編譯階段,編譯器會(huì)自動(dòng)給對(duì)象添加一個(gè)實(shí)例變量_str和它的存取方法- (void)setSt...
==程序在內(nèi)存空間分布為:== 由低向高 各個(gè)地址塊 不連續(xù) 高地址 棧區(qū)(stack):由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其 操作方式類似于數(shù)據(jù)結(jié)構(gòu)...
==app啟動(dòng)到Runtime== 例子: 編譯完成后,這個(gè)可執(zhí)行文件,有一個(gè)頭部,用于表明文件信息: 當(dāng)你執(zhí)行它,該二進(jìn)制文件會(huì)被讀取,操作系統(tǒng)可執(zhí)行程序加載器會(huì)加載該文件...
==分類== 是不能添加屬性的,只能關(guān)聯(lián)屬性。屬性包含 get,set ,成員變量,而分類里并沒(méi)有可存儲(chǔ)成員變量的地址。所以即使聲明了屬性,也找不到地址。 分類是不能添加屬性...
==objc_class== ==isa 指針== 我們創(chuàng)建的一個(gè)對(duì)象或?qū)嵗鋵?shí)就是一個(gè) struct objc_object 結(jié)構(gòu)體,而我們常用的id也就是這個(gè)結(jié)構(gòu)體的指針...
類和結(jié)構(gòu)體 ==類和結(jié)構(gòu)體關(guān)系== OC中Class點(diǎn)進(jìn)去看就是一個(gè)指向結(jié)構(gòu)體的指針,在64位環(huán)境下占8個(gè)字節(jié),所以NSObject在內(nèi)存中就占8個(gè)字節(jié),但是真正的的情況是系...
編寫(xiě)第一個(gè)APP 在編寫(xiě)APP之前,dart語(yǔ)法不多說(shuō),框架層要做到 了解init等生命周期,狀態(tài)基,類是怎么創(chuàng)建的,類和界面什么關(guān)系,文件和類什么關(guān)系 直接了解概念也許不好...