核心思想 在Runloop處理完所有事件即將要睡眠時(shí),根據(jù)當(dāng)前設(shè)備處理器的數(shù)量來創(chuàng)建相應(yīng)數(shù)量的串行隊(duì)列(避免線程調(diào)度),當(dāng)有多個(gè)繪制任務(wù)時(shí),開辟多個(gè)子線程在后臺(tái)異步繪制!將通...

核心思想 在Runloop處理完所有事件即將要睡眠時(shí),根據(jù)當(dāng)前設(shè)備處理器的數(shù)量來創(chuàng)建相應(yīng)數(shù)量的串行隊(duì)列(避免線程調(diào)度),當(dāng)有多個(gè)繪制任務(wù)時(shí),開辟多個(gè)子線程在后臺(tái)異步繪制!將通...
正好趁著這個(gè)假期,把前段時(shí)間掌握的Flutter底層知識(shí)點(diǎn)記錄下來,日后還會(huì)持續(xù)更新哈! Flutter與React Native的本質(zhì)區(qū)別: React Native,通過...
大家通常是否會(huì)認(rèn)為isa就是對(duì)象的指針,用來表明對(duì)象所屬的類型。但是如果isa指針僅表示類型的話,對(duì)內(nèi)存顯然也是一個(gè)極大的浪費(fèi)。于是,就像tagged pointer一樣,對(duì)...
HeapObject 在Swift中,一個(gè)Class對(duì)象實(shí)際上就是一個(gè)HeapObject結(jié)構(gòu)體指針。那么它的內(nèi)存布局是怎樣的呢? 首先我們先來看一下 HeapObject ...
首先我們來看一段代碼 上述代碼中,泛型方法的調(diào)用過程大概如下: 泛型和Protocol Type的區(qū)別在于: 泛型類型由于在調(diào)用時(shí)能夠確定具體的類型,每個(gè)調(diào)用上下文只有一種類...
首先我們來看一段代碼 那么請(qǐng)問各位看官, draws中存儲(chǔ)的是什么呢?事實(shí)上,在這種情況下,變量 draws 中存儲(chǔ)的元素是一種特殊的數(shù)據(jù)類型:Existential Con...
什么是Tagged Pointer? 在2013年9月,蘋果推出了iPhone5s,與此同時(shí),iPhone5s配備了首個(gè)采用64位架構(gòu)的A7雙核處理器,為了節(jié)省內(nèi)存和提高執(zhí)行...
新的APNs協(xié)議基于HTTP/2,一種是使用Universal Push Notification Client SSL 證書,一種是使用Token。 基于HTTP/2與To...
在筆者編寫的iOS-Objective-C的本質(zhì)中,我們已經(jīng)了解到,所有的OC對(duì)象本質(zhì)中都包含了一個(gè)isa指針,這個(gè)指針要么指向類對(duì)象,要么指向元類對(duì)象,今天,我們進(jìn)一步來觀...