标签:
// Person的方法
- (void)eat
{
NSLog(@"吃饭");
}
- (void)learn
{
NSLog(@"学习");
}
- (void)play
{
NSLog(@"娱乐");
}
// 连续做事情
Person *p = [ [Person alloc] init ];
[p eat];
[p learn];
[p play];
// Person的方法
- (Person *)eat
{
NSLog(@"吃饭");
return self;
}
- (Person *)learn
{
NSLog(@"学习");
return self;
}
- (Person *)play
{
NSLog(@"娱乐");
return self;
}
// 连续做事情,这么写看得眼花
Person *p = [ [Person alloc] init ];
[[[p eat] learn] play];
// Person的方法
- ( Person *(^)() )eat
{
return ^{
NSLog(@"吃饭");
return self;
};
}
- ( Person *(^)() )learn
{
return ^{
NSLog(@"学习");
return self;
};
}
- ( Person *(^)() )play
{
return ^{
NSLog(@"娱乐");
return self;
};
}
// 连续做事情
Person *p = [ [Person alloc] init ];
p.eat().learn().play();
比如人的吃饭方法,参数是 NSString *food
- ( Person *(^)() )eat:(NSString*) food
{
return ^(food){
NSLog(@"吃饭);
return self;
};
}
所以正确的写法:
- ( Person *(^)( NSString* food ) )eat
{
return ^( NSString* food ){
NSLog(@"吃饭---- %@",food);
return self;
};
}
// 连续做事情
p.eat(@"白菜").learn().play();
- ( 返回值是Block ) 方法名
{
return *{
Block内部装着真正要执行的代码
return self;
};
}
标签:
原文地址:http://www.cnblogs.com/oumygade/p/4284707.html