利用block传值
1.要传一个值给外界,则让block作为参数
ps:在person.h中定义一个方法
@property(nonatomic,strong) void(^block)();
-(void)eat:(void(^)(NSString *))block;
在person.m中实现这个方法
-(void)eat:(void (^)(NSString *))block{
block(@"苹果");
}
在外界调用
Person * p = [[Person alloc]init];
[p eat:^(NSString * s) {
NSLog(@"爱吃%@",s);
}];
这样就把苹果这个字符串由person传到了外界
2.由外界传值给person类,person类写一个block作为返回值的方法
person.h
-(void(^)(int))run;
person.m
-(void (^)(int))run
{
return ^(int m){
NSLog(@"哥么跑起来了!!跑了%d",m);
};
}
外界调用
person *p = [[person alloc] init];
p.run(100);
由此,100即被传入到了person类中
总结:灵活使用block作为参数和返回值,可以灵活的传值给需要传递的对象