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

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

林玟書2年前18瀏覽0評論

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

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

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

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

根據block在內存中的位置,block被分成三種類型:

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

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