在main中的代碼如下 創(chuàng)建Tabbar文件夾,并創(chuàng)建buttom_navigator_widget文件,使用快捷鍵(stl)創(chuàng)建StatefulWidget代碼??梢愿鶕?jù)需...
前言 應(yīng)用在運(yùn)行以后,只要有觸發(fā)事件(點擊按鈕),應(yīng)用程序就會立刻做出相應(yīng)的反應(yīng),如果不對它進(jìn)行操作,應(yīng)用程序就像靜止了一樣。給我們的感覺就像應(yīng)用一直處于隨時待命的狀態(tài),在沒...
獲取isa指向的Class,如果person是實例對象,獲取得是類對象。如果person是類對象,獲取得是元類對象object_getClass(person)獲取父類cla...
Class內(nèi)部結(jié)構(gòu)中有個方法緩存(catch_t),用散列表來緩存曾經(jīng)調(diào)用過的方法,可以提高方法的查找速度。 class_ro_t和class_rw_t的區(qū)別 class_r...
在arm64架構(gòu)之前,isa就是一個普通的指針,存儲著Class、Meta-Class對象的內(nèi)存地址。在Runtime源碼中可以看到 從arm64架構(gòu)開始,對isa進(jìn)行了優(yōu)化...
底層數(shù)據(jù)結(jié)構(gòu) 創(chuàng)建一個命令行項目,在main函數(shù)中定義一個Block并進(jìn)行調(diào)用 在控制臺中輸入:xcrun -sdk iphoneos clang -arch arm64 -...
蘋果在iOS13中為iPhone引入了深色模式,所有 UIKit 本身所提供的 UI 控件(例如 UIView,UILabel,UITextView等等) ,只要沒有針對顏色...
KVO可以用于監(jiān)聽某個對象屬性值得改變。 _NSSet*ValueAndNotify的內(nèi)部實現(xiàn):調(diào)用willChangeValueForKey:調(diào)用原來的setter實現(xiàn)調(diào)用...
為什么要動態(tài)鏈接 動態(tài)鏈接及優(yōu)點 動態(tài)鏈接思想:把程序的模塊相互分割開來,形成獨立的文件,而不再將它們靜態(tài)地鏈接在一起,等到程序運(yùn)行時才進(jìn)行鏈接。 優(yōu)點一:對于共享的目標(biāo)文件...
計算機(jī)是由CPU、內(nèi)存和外部設(shè)備組成的。CPU負(fù)責(zé)數(shù)據(jù)處理,內(nèi)存負(fù)責(zé)存儲,外部設(shè)備負(fù)責(zé)數(shù)據(jù)的輸入和輸出,它們之間通過總線連接在一起。CPU主要是由控制器、運(yùn)算器和寄存器組成的...
[ [ ...]] [-options [option value]] [argument [argument...]] 例如 : breakpoint set -n ...
Xcode動態(tài)調(diào)試原理 動態(tài)調(diào)試就是將程序運(yùn)行起來,通過下斷點、打印等方式查看參數(shù)、返回值、函數(shù)調(diào)用流程等。 Xcode的調(diào)試器發(fā)展歷程:GDB -> LLDB ,LLDB...
在開發(fā)過程中,我們很少會去關(guān)注編譯和鏈接過程,Xcode會自動處理將編譯和鏈接合并到一起來生成一個可執(zhí)行文件,下面我們來分析一下Xcode為我們做了那些事情。 預(yù)編譯 1.p...
逆向可以使我們更加深入地了解APP運(yùn)行原理,是怎樣編譯、鏈接、注入到手機(jī)中運(yùn)行。Theos是提供我們開發(fā)應(yīng)用插件的越獄開發(fā)工具包,使用它可以創(chuàng)建Tweak項目,動態(tài)Hook第...
Redux 狀態(tài)管理的組件庫,當(dāng)我們遇到某個組件的狀態(tài)需要共享,某個狀態(tài)需要在任何地方都可以拿到,一個組件需要改變?nèi)譅顟B(tài),一個組件需要改變另一個組件的狀態(tài)時,Redux是我...
函數(shù)組件只需要接受props參數(shù)并且返回一個React元素,class組件需要繼承component,還需要創(chuàng)建render 并且返回React元素,語法看起來麻煩點。 函數(shù)...