色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

iosblock在堆和棧中的區(qū)別?

劉姿婷2年前21瀏覽0評論

代碼塊Block是蘋果在iOS4開始引入的對C語言的擴展,用來實現(xiàn)匿名函數(shù)的特性,Block是一種特殊的數(shù)據(jù)類型,其可以正常定義變量、作為參數(shù)、作為返回值,特殊地,Block還可以保存一段代碼,在需要的時候調(diào)用,目前Block已經(jīng)廣泛應用于iOS開發(fā)中,常用于GCD、動畫、排序及各類回調(diào)

注: Block的聲明與賦值只是保存了一段代碼段,必須調(diào)用才能執(zhí)行內(nèi)部代碼

block的三種類型:全局塊、棧塊、堆塊。

根據(jù)block在內(nèi)存中的位置,block被分成三種類型:

類型內(nèi)存位置介紹__NSStackBlock__棧區(qū)棧內(nèi)有效,出棧后銷毀。__NSMallocBlock__堆區(qū)copy到堆空間上。可以在定義的那個范圍之外使用。__NSGlobalBlock__全局區(qū)不捕捉任何外部變量,全部信息在編譯器就已確定。