block使用注意

1、定義格式

void (^block)()=^{ ? ? ?//無(wú)參無(wú)返回值

NSLog(@“helloworld”);

}

int (^myBlock)(int ,int )=^(int x,int y){ ? ? ? //有參有返回值,此時(shí)myBlock為變量名

return x+y;

}

2、typedef用法

typedef ?int(^myBlock)(int ,int ); //此時(shí)myBlock為類型

myBlock b1,b2;

3、訪問(wèn)外部變量

當(dāng)定義block的時(shí)候,會(huì)把外部變量以const(只讀)的方式復(fù)制一份存放到block的所在內(nèi)存中。

(1)不允許修改外部變量

int m=10;

void (^block)()=^{

m=100; ? ? ? ? ? ? ? ?//錯(cuò)誤

NSLog(@“m=%d”,m);

}

(2)允許修改

__block int m=10;

void (^block)()=^{

m=100; ? ? ? ? ? ? ? ?//正確

NSLog(@“m=%d”,m);

}

NSLog(@“m=%d”,m); ? //此時(shí)m=100

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

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

  • Block使用場(chǎng)景,可以在兩個(gè)界面的傳值,也可以對(duì)代碼封裝作為參數(shù)的傳遞等。用過(guò)GCD就知道Block的精妙之處。...
    Coder_JMicheal閱讀 824評(píng)論 2 1
  • iOS代碼塊Block 概述 代碼塊Block是蘋果在iOS4開(kāi)始引入的對(duì)C語(yǔ)言的擴(kuò)展,用來(lái)實(shí)現(xiàn)匿名函數(shù)的特性,B...
    smile刺客閱讀 2,468評(píng)論 2 26
  • 前言 Blocks是C語(yǔ)言的擴(kuò)充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了這...
    小人不才閱讀 3,881評(píng)論 0 23
  • 轉(zhuǎn)自李峰峰博客 一、概述 閉包 = 一個(gè)函數(shù)「或指向函數(shù)的指針」+ 該函數(shù)執(zhí)行的外部的上下文變量「也就是自由變量」...
    Joshua520閱讀 1,107評(píng)論 0 0
  • 本章閱讀感受 本章的閱讀在理解上沒(méi)什么問(wèn)題,因?yàn)樽髡呓o出了一個(gè)很清晰的框架,整篇都是在講解通過(guò)什么樣的步驟來(lái)找出共...
    digman閱讀 686評(píng)論 0 0

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