初识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");
}
网友评论