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);

你可能感兴趣的:(iOS--block的4种使用情况)