在Objective-C中聲明block

1.申明一個本地變量

returnType (^blockName)(parameterTypes) = ^returnType(parameters){...}
例如

bool (^isEventBlock)(NSInteger num) = ^bool(NSInteger num){
    if (num % 2 == 0)
        return YES;
    else
        return NO;
};

2.申明一個屬性

@property (nonatomic, copy, nullability) returnType (^blockName)(parameterTypes);
例如

@property (nonatomic, copy,  nullability) bool (^evenBlock)(NSInteger num);

3.申明一個函數(shù)參數(shù)

-(void)someMethodThatTakesABlock:(returnType (^nullability)(parameterTypes)) blockName;
例如

- (void)filterNumsWithEvenBlock:(bool (^)(NSInteger num)) evenBlock;

- (void)filterNumsWithEvenBlock:(bool (^)(NSInteger num)) evenBlock
{
    NSInteger num = 3;
    evenBlock(3);
}

4.作為一個函數(shù)調(diào)用的參數(shù)

[someObject someMethodThatTakesABlock:^returnType (parameters){...}];
例如

[self filterNumsWithEvenBlock:^bool (NSInteger num){
    if (num % 2 == 0 )
        return YES;
    else
        return NO;
}];

5.重命名typedef

typedef returnType (^TypeName)(parameterTypes);
TypeName blockName = ^returnType(parameters){...};
例如

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

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

  • block就是OC對閉包函數(shù)的實現(xiàn)。block使用很方便,在日常開發(fā)中,合理使用能代碼結(jié)構(gòu)更加清晰。簡單記錄下bl...
    小巷深深閱讀 7,312評論 0 1
  • 摘要 block的語法讓人很蛋疼,但是如果好好理一下思路,發(fā)現(xiàn)也沒那么難。 代理設(shè)計模式對于iOS開發(fā)的人來說肯定...
    shalapovar閱讀 459評論 0 1
  • 第一次逛到新浪圖片,這個兩會場外策劃的創(chuàng)意很不錯啊,以后運營宣傳活動可以借鑒。 回憶了一下我的學(xué)生時代,讓我到現(xiàn)在...
    藍小懶閱讀 577評論 0 0
  • 過年在家。我媽問我現(xiàn)在做什么?我跟她講說,做運營的。她又問,運營是做什么的?就是……做活動,寫文案的??瓤?,我媽不...
    運營渣閱讀 6,708評論 1 17
  • 意識到自己是個垃圾真是一件痛苦的事,你知道嗎,這個世界上沒有人會關(guān)心別人,就算是你自己,某種程度上也不瞭解自己。 ...
    randompiece閱讀 294評論 0 0

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