RAC

2022-08-16  本文已影响0人  飘摇的水草
初识RAC
block的简单使用

block的三种用途

@interface Person : NSObject

@property (nonatomic, copy) void (^ block)(void);

- (void)eat:(void (^)(void))block;

- (void (^)(NSString *))run;

@end

@implementation Person

- (void)eat:(void (^)(void))block
{
    block();
}

- (void (^)(NSString *))run
{
    return ^(NSString *para){
        NSLog(@"跑了%@米",para);
    };
}
@end

第三种方式比较新颖,把 block 作为参数的方式返回,并直接用方法名 + 小括号的方式调用,使用方式如下

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application

    //第一种用法,作为对象的属性
    Person *person = [[Person alloc]init];
    person.block = ^{
        NSLog(@"调用");
    };
    person.block();
    
    //第二种用法,作为方法的参数
    [person eat:^{
        NSLog(@"吃了");
    }];
    
    //第三种用法,作为返回值
    person.run(@"10");
}
上一篇 下一篇

猜你喜欢

热点阅读