摘要:
在前文《深入淺出Cocoa多線程編程之block與dispatch quene》中我介紹了 block 的一些基本語法以及如何和 GCD 結(jié)合的使用示例。block 是在 iOS 4 中引入的新特性,它和 C++ 11 中的 lamba 表達(dá)式概念相似,有時(shí)候也被稱為閉包。經(jīng)過一段時(shí)間的使用,我發(fā)現(xiàn)要用對(duì)用好 block 還是有不少需要注意的地方,今天就來八一八這些值得注意的事兒。
1,block 在實(shí)現(xiàn)時(shí)就會(huì)對(duì)它引用到的它所在方法中定義的棧變量進(jìn)行一次只讀拷貝,然后在 block 塊內(nèi)使用該只讀拷貝。
2,非內(nèi)聯(lián)(inline) block 不能直接訪問 self,只能通過將 self 當(dāng)作參數(shù)傳遞到 block 中才能使用,并且此時(shí)的 self 只能通過 setter 或 getter 方法訪問其屬性,不能使用句點(diǎn)式方法。但內(nèi)聯(lián) block 不受此限制。
3,使用 weak–strong dance 技術(shù)來避免循環(huán)引用。
4,block 內(nèi)存管理分析 閱讀全文
posted @ 2013-04-30 21:09
飄飄白云
閱讀(10955)
評(píng)論(9)
推薦(3)
浙公網(wǎng)安備 33010602011771號(hào)