早期的計(jì)算機(jī)是沒有虛擬內(nèi)存的說法的,為什么會(huì)出現(xiàn)虛擬內(nèi)存的概念,一個(gè)新技術(shù)的出現(xiàn)一定是為了解決某個(gè)為題而存在的 安全問題:如下圖,如果我們進(jìn)程1...
早期的計(jì)算機(jī)是沒有虛擬內(nèi)存的說法的,為什么會(huì)出現(xiàn)虛擬內(nèi)存的概念,一個(gè)新技術(shù)的出現(xiàn)一定是為了解決某個(gè)為題而存在的 安全問題:如下圖,如果我們進(jìn)程1...
oc中的內(nèi)存管理是通過引用計(jì)數(shù)來控制對(duì)象的釋放回收的,在MRC中,reatan操作之后引用計(jì)數(shù)+1,release引用計(jì)數(shù)-1,當(dāng)引用計(jì)數(shù)為0時(shí)...
Timer強(qiáng)引用 假設(shè)VC有一個(gè)timer正在執(zhí)行,如果不調(diào)用[self.timer invalidate];,當(dāng)我們pop回去的時(shí)候timer...
本質(zhì) aotoreleasepool 到底是個(gè)什么樣的結(jié)構(gòu)呢,clang一下看一下他的本質(zhì)結(jié)構(gòu), clang -rewrite-objc mai...
概念 GCD全稱Grand Central Dispatch純c語(yǔ)言,提供了非常多強(qiáng)大的函數(shù)GCD是蘋果公司為多核的并行運(yùn)算提出的解決方案GCD...
探索方法的本質(zhì) 一個(gè)最基本的方法調(diào)用代碼 方法的調(diào)用底層到底是個(gè)什么東西呢我們可以利用clang的一些命令 clang -rewrite-obj...
方法交換 坑點(diǎn)1 例子: 很明數(shù)組越界報(bào)異常,那么就可以利用runtime,進(jìn)行方法hook 發(fā)現(xiàn)還是報(bào)錯(cuò) -[__NSArrayI objec...
Block本質(zhì) block本質(zhì)為一個(gè)結(jié)構(gòu)體也可以說是一個(gè)匿名函數(shù)我們可以利用clang來進(jìn)行分析 我們也可以找到block的源碼 Block分類...
能否向編譯好的類中增加實(shí)例變量,能否向運(yùn)行時(shí)創(chuàng)建的類中添加實(shí)力變量 不能向編譯好的類中增加實(shí)例變量 只要類沒有注冊(cè)到內(nèi)存中還是可以添加的原因: ...
weak作用 weak我們常用來解決循環(huán)引用,因?yàn)閣eak修飾的對(duì)象引用計(jì)數(shù)不會(huì)增加,當(dāng)對(duì)象釋放的時(shí)候回自動(dòng)置為nil,不會(huì)造成野指針. wea...