iOS--block的4種使用情況

1. block幫你保存一份代碼,等到恰當的時候調用

 void(^block)(int) = ^(int reuslt){ 
        NSLog(@"%d",reuslt);
    };
    block(2);
2.保存在對象中,恰當的時候才去調用
#import "Person.h"
@property (nonatomic,strong)void(^operation)();
Person *p = [[Person alloc]init];
    void(^block)() = ^() {
        NSLog(@"執行對象中block");     
    };
    p.operation = block;
    p.operation();
3.把block當做方法的的參數,外界不調用,都是方法的內部調用
#import "Person.h"
-(void)eat:(void (^)())block;
#import "Person.m"
-(void)eat:(void (^)())block
{
// 方法的內部調用
    block();
}

4.把block當做方法的返回值

#import "Person.h"
-(void (^)(int))run;
#import "Person.m"
-(void (^)(int))run
{
    return ^(int metre){
        NSLog(@"跑了%d米",metre);
    };
}
#import "ViewController.h"
 Person *p = [[Person alloc]init];
   p.run(2);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容