利用block傳值
1.要傳一個(gè)值給外界,則讓block作為參數(shù)
ps:在person.h中定義一個(gè)方法
?@property(nonatomic,strong) void(^block)();
-(void)eat:(void(^)(NSString *))block;?
在person.m中實(shí)現(xiàn)這個(gè)方法
-(void)eat:(void (^)(NSString *))block{
block(@"蘋果");
}
在外界調(diào)用
Person * p = [[Person alloc]init];
[p eat:^(NSString * s) {
NSLog(@"愛吃%@",s);
}];
這樣就把蘋果這個(gè)字符串由person傳到了外界
2.由外界傳值給person類,person類寫一個(gè)block作為返回值的方法
person.h
-(void(^)(int))run;
person.m
-(void (^)(int))run
{
return ^(int m){
NSLog(@"哥么跑起來(lái)了!!跑了%d",m);
};
}
外界調(diào)用
person *p = [[person alloc] init];
p.run(100);
由此,100即被傳入到了person類中
總結(jié):靈活使用block作為參數(shù)和返回值,可以靈活的傳值給需要傳遞的對(duì)象