已經(jīng)一兩個(gè)月沒(méi)有更新過(guò)博客了, 不過(guò)這兩個(gè)月并沒(méi)有閑下來(lái), 只是在完成以前欠下的的任務(wù). 幾個(gè)月前就開(kāi)始動(dòng)手寫(xiě)一本iOS開(kāi)發(fā)方面的書(shū)籍, 希望這本書(shū)籍是實(shí)用性比較強(qiáng)的一本...
已經(jīng)一兩個(gè)月沒(méi)有更新過(guò)博客了, 不過(guò)這兩個(gè)月并沒(méi)有閑下來(lái), 只是在完成以前欠下的的任務(wù). 幾個(gè)月前就開(kāi)始動(dòng)手寫(xiě)一本iOS開(kāi)發(fā)方面的書(shū)籍, 希望這本書(shū)籍是實(shí)用性比較強(qiáng)的一本...
一.卡頓優(yōu)化 1. CPU 和 GPU 在屏幕成像的過(guò)程中,CPU 和 GPU 起著至關(guān)重要的作用 CPU(Central Processing Unit,中央處理器)對(duì)象的...
一.定時(shí)器 1.CADisplayLink、NSTimer CADisplayLink、NSTimer 會(huì)對(duì) target 產(chǎn)生強(qiáng)引用,如果 target 又對(duì)它們產(chǎn)生強(qiáng)引用...
一、基礎(chǔ)概念 有4個(gè)術(shù)語(yǔ)比較容易混淆:同步、異步、并發(fā)、串行 1.進(jìn)程和線程 進(jìn)程:進(jìn)程是計(jì)算機(jī)中已運(yùn)行程序的實(shí)體,是線程的容器。每個(gè)進(jìn)程之間是相互獨(dú)立的,每個(gè)進(jìn)程均運(yùn)行在專(zhuān)...
一. RunLoop簡(jiǎn)介 運(yùn)行循環(huán),在程序運(yùn)行過(guò)程中循環(huán)做一些事情,如果沒(méi)有Runloop程序執(zhí)行完畢就會(huì)立即退出,如果有Runloop程序會(huì)一直運(yùn)行,并且時(shí)時(shí)刻刻在等待用戶...
runtime 介紹 Objective-C 是一門(mén)動(dòng)態(tài)性比較強(qiáng)的編程語(yǔ)言,跟 C、C++ 等語(yǔ)言有著很大的不同,Objective-C 的動(dòng)態(tài)性是由 Runtime API...
1.使用 runtime 為 Category 動(dòng)態(tài)關(guān)聯(lián)對(duì)象 在分類(lèi)中可以用 @property 添加屬性,但是不會(huì)自動(dòng)生成私有成員變量,也不會(huì)生成 set/get 方法的實(shí)...
一、Category 本質(zhì) 我們知道,當(dāng)調(diào)用一個(gè)對(duì)象的方法時(shí),通過(guò)對(duì)象的 isa 指針找到類(lèi)對(duì)象,然后在類(lèi)對(duì)象的方法列表中查找方法,如果沒(méi)有找到,就通過(guò)類(lèi)對(duì)象的 superc...
KVC 使用 KVC的全稱是Key-Value Coding,俗稱“鍵值編碼”,可以通過(guò)一個(gè)key來(lái)訪問(wèn)某個(gè)屬性 常見(jiàn)的API有 (void)setValue:(id)val...
一、KVO 的使用 KVO 的全稱 Key-Value Observing,俗稱“鍵值監(jiān)聽(tīng)”,可以用于監(jiān)聽(tīng)某個(gè)對(duì)象屬性值的改變。 上述代碼中可以看出,在添加監(jiān)聽(tīng)之后,age屬...
不管是類(lèi)對(duì)象還是元類(lèi)對(duì)象,類(lèi)型都是 Class,class 和 mete-class 的底層都是 objc_class 結(jié)構(gòu)體的指針。 1.OBJC1 objc_class ...
一、OC 對(duì)象的種類(lèi) 1.OC 對(duì)象的種類(lèi) OC 對(duì)象有三個(gè)大的種類(lèi): instance 對(duì)象(實(shí)例對(duì)象) class 對(duì)象(類(lèi)對(duì)象) meta-class 對(duì)象(元類(lèi)對(duì)象)...
一、OC 對(duì)象的本質(zhì) 探尋OC對(duì)象的本質(zhì),我們平時(shí)編寫(xiě)的Objective-C代碼,底層實(shí)現(xiàn)其實(shí)都是C\C++代碼。OC的對(duì)象都是通過(guò)基礎(chǔ)C\C++的結(jié)構(gòu)體實(shí)現(xiàn)的。 1. O...
介紹GraphQL 查詢時(shí)結(jié)構(gòu)化的,信息是類(lèi)樹(shù)結(jié)構(gòu)展示的。值類(lèi)型可以理解為葉子,對(duì)象類(lèi)型可以理解為樹(shù)干GraphQL 是一種描述如何請(qǐng)求數(shù)據(jù)的語(yǔ)法,通常用于客戶端向服務(wù)器請(qǐng)求...
覺(jué)得好就打賞,別整沒(méi)用的
Objective-C 編程規(guī)范命名規(guī)范 1.【強(qiáng)制】 代碼中的命名均不能以下劃線或美元符號(hào)開(kāi)始,也不能以下劃線或美元符號(hào)結(jié)束。 反例: _name / __name / $Object / name_ /...
命名規(guī)范 1.【強(qiáng)制】 代碼中的命名均不能以下劃線或美元符號(hào)開(kāi)始,也不能以下劃線或美元符號(hào)結(jié)束。 反例: _name / __name / $Object / name_ /...
命名規(guī)范 1.【強(qiáng)制】 代碼中的命名均不能以下劃線或美元符號(hào)開(kāi)始,也不能以下劃線或美元符號(hào)結(jié)束。 反例: _name / __name / $Object / name_ /...
1.使類(lèi)和成員的可訪問(wèn)性最小化 訪問(wèn)修飾符: private protected public 頂層的(非嵌套)類(lèi)和接口,兩種訪問(wèn)級(jí)別: 包級(jí)私有(package-priva...
1.同步訪問(wèn)共享的可變數(shù)據(jù) 同步:同步不僅可以阻止一個(gè)線程看到對(duì)象處于不一致的狀態(tài)之中,還可以保證進(jìn)入同步方法或者同步代碼塊的每個(gè)線程,都看到一個(gè)鎖保護(hù)的之前所有的修改效果。...