全局塊(global block)、棧塊(stack block)及堆塊(malloc block)

三種類型的 block:

1、NSGlobalBlock:存儲在程序的數(shù)據(jù)區(qū)域,在 block 內(nèi)部沒有引用任何外部變量。

2、NSStackBlock:存儲在棧上,在 block 內(nèi)部引用外部變量。在 MRC 下,棧塊在當(dāng)函數(shù)退出的時候,該空間會被回收,因此如果再調(diào)用該 block 會導(dǎo)致 crash,通過拷貝該棧塊,可以解決該問題。在 ARC 模式下,生成的 block 也是 棧塊,只是當(dāng)賦值給 strong 對象時,系統(tǒng)會主動對其進(jìn)行 copy。

3、NSMallocBlock:存儲在堆上的 block。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 Blocks是C語言的擴(kuò)充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了這...
    小人不才閱讀 3,869評論 0 23
  • iOS代碼塊Block 概述 代碼塊Block是蘋果在iOS4開始引入的對C語言的擴(kuò)展,用來實現(xiàn)匿名函數(shù)的特性,B...
    smile刺客閱讀 2,468評論 2 26
  • 《Objective-C高級編程》這本書就講了三個東西:自動引用計數(shù)、block、GCD,偏向于從原理上對這些內(nèi)容...
    WeiHing閱讀 10,098評論 10 69
  • 前言 block的具體怎么使用我在這里就不一一細(xì)說, 我主要說的是關(guān)于block三種類型之間的區(qū)別, 以及blo...
    夢里桃花舞傾城閱讀 234評論 0 0
  • 前言 深究block可以說會涉及不少東西,筆者欲通過循序漸進(jìn)的方式來談及block相關(guān),略陳固陋。閱讀本文前,希望...
    陸辭書閱讀 1,217評論 6 22

友情鏈接更多精彩內(nèi)容