ios拓展6-block的作為參數(shù)

ps:本文針對(duì)初學(xué)者

block對(duì)于初學(xué)者,會(huì)覺(jué)得block比較復(fù)雜,很難理解. 尤其是在作為參數(shù)的時(shí)候. 一般在實(shí)際使用的時(shí)候我們常用block的兩種方式, 一種是 作為 "成員變量", 另一種是作為參數(shù)(初學(xué)者比較難理解的); 筆者會(huì)用一些比較簡(jiǎn)單的方式進(jìn)行講解

初學(xué)者如果不熟悉的話,可以使用inline(ps:最好完全手打,不要用),
inline.png
===1.作為成員變量使用(就像普通變量)===

一般就是初始化,賦值,然后調(diào)用. 就像使用普通的變量一樣,這里不做說(shuō)明

void(^blk)(int)/*聲明*/ = ^(int a)/*賦值,a為形參*/ {
        NSLog(@"%d",a);
    };
    
    blk(2);/*調(diào)用*/
===2.作為參數(shù)使用===

作為參數(shù)使用只要記住 傳遞實(shí)參的時(shí)候, 相當(dāng)于對(duì)block 進(jìn)行賦值, 剩下的就好理解了

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //這里是調(diào)用 didBlock: 方法
    [self didBlock:^(int a) {
        NSLog(@"%d",a);   /*調(diào)用方法時(shí), 這里實(shí)參傳遞(就相當(dāng)于賦值)*/
    }];
}

/**
 *  方法
 *
 *  @param blk1 參數(shù)名
 */
- (void)didBlock:(void(^)(int))blk1 /*聲明*/{
    
    blk1(2);/*調(diào)用*/
    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,814評(píng)論 1 92
  • 《Objective-C高級(jí)編程》這本書(shū)就講了三個(gè)東西:自動(dòng)引用計(jì)數(shù)、block、GCD,偏向于從原理上對(duì)這些內(nèi)容...
    WeiHing閱讀 9,907評(píng)論 10 69
  • 前言 Blocks是C語(yǔ)言的擴(kuò)充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了這...
    小人不才閱讀 3,787評(píng)論 0 23
  • Block基礎(chǔ)回顧 1.什么是Block? 帶有局部變量的匿名函數(shù)(名字不重要,知道怎么用就行),差不多就與C語(yǔ)言...
    Bugfix閱讀 6,802評(píng)論 5 61
  • 大家好我是安倍晴明,今天有個(gè)腦子抽筋了的作者。嗯??我把他叫做宮女。 他要直播我的抽卡日常,嚇得我差點(diǎn)拿小拳拳錘他...
    總有宮女想非禮朕閱讀 706評(píng)論 13 11