Block系列一

前言:block雖然經(jīng)常用,代碼中也隨處可見,但是不一定每個(gè)人都能夠準(zhǔn)確定義并使用,所以再看了一篇博客后,手癢 就順手花幾分鐘也寫了篇總結(jié)下,如有雷同,您就湊合著看??。之后會(huì)從底層來總結(jié)下block的實(shí)現(xiàn)原理以及相關(guān)的問題。

1、block作為變量

定義:返回值類型 (^block名)(參數(shù)類型)= ^返回值類型(參數(shù)){};
示例:

UIImageView * (^testBlok)(UIImageView *) = ^UIImageView *(UIImageView *ima) {
        return [UIImageView new];
    };
testBlok([UIImageView new]);

2、block作為屬性

定義:@property (nonatomic,copy) 返回值類型(^block名)(參數(shù)類型)
示例:

@property (nonatomic, copy) UIImageView *(^testBlock)(UIImageView *);

使用:

self.testBlock = ^UIImageView *(UIImageView *aa) {
        return [UIImageView new];
    };

3、block作為函數(shù)聲明的形參

定義:- (void) 函數(shù)名:(返回值類型 (^) (參數(shù)類型)) {
}
示例:

- (void)testBlockWith:(UIImageView * (^)(UIImageView *imag) )testParamBlock {
    if(testParamBlock) {
        UIImageView *image = nil;
        UIImageView *resultImageView = testParamBlock(image);
    }
}

4、block作為函數(shù)實(shí)參

定義:[函數(shù)名:^返回值類型 (參數(shù)) { … }];
示例:

[self testBlockWith:^UIImageView *(UIImageView *imag) {
       
}]

5、使用typedef來定義

typedef 返回值類型(^block名)(參數(shù)類型);
使用:block名 xxxx = ^返回值類型(參數(shù)){…}

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

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

  • 1 Block機(jī)制 (Very Good) Block技巧與底層解析 http://www.itdecent.cn...
    Kevin_Junbaozi閱讀 4,152評論 3 48
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,235評論 0 38
  • 前言 人生苦多,快來 Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,669評論 9 118
  • block.png iOS代碼塊Block 概述 代碼塊Block是蘋果在iOS4開始引入的對C語言的擴(kuò)展,用來實(shí)...
    全棧農(nóng)民工閱讀 638評論 0 1
  • 我念你不知道我的國籍、省份和街道住址念你不知道我的性別、年齡念你不了解我的過去和將來念你不知我的生命長短,不知我有...
    老歪V閱讀 885評論 1 2

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