您好,登錄后才能下訂單哦!
block類型
block是一種數(shù)據(jù)類型,在iOS開發(fā)中廣泛使用且被蘋果公司極力推薦使用,其功能很像C語言中的函數(shù)指針。
^ 是block的特有標志。
block的實現(xiàn)代碼包含在{ }中。
大多數(shù)情況下,以內(nèi)聯(lián)的形式被定義及使用。
void (^demoBlock)() = ^ { NSLog(@"demo Block"); } int (^sumBlock)(int, int) = ^(int x, int y) { return x + y; }
block的使用和函數(shù)指針的使用類似
int (^sumblock)(int, int) = ^(int a, int b) { return a>b?a:b; } int c = sumblock(10, 20); NSLog(@"c=%d", c);
block內(nèi)部可以訪問外部的變量
外部的局部變量,block內(nèi)部不能修改,全局變量可以。
如果局部變量使用__block聲明,則可以在內(nèi)部修改。
int a = 10; __block int b = 20; void (^myblock)(); myblock = ^ { NSLog(@"a=%d", a); b = 20; } myblock();
實際上,定義block時會對局部變量進行拷貝(副本)
block的重要意義:在處理異步任務(wù)時非常方便,這也是block應(yīng)用的難點
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。