RAC

作者: 飘摇的水草 | 来源:发表于2022-08-16 16:09 被阅读0次
初识RAC
block的简单使用

block的三种用途

  • 第一种用法,作为对象的属性
  • 第二种用法,作为方法的参数
  • 第三种用法,作为返回值(参考 Masonry 框架,即链式编程)
@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");
}

相关文章

网友评论

      本文标题:RAC

      本文链接:https://www.haomeiwen.com/subject/rhxdgrtx.html