.h
- (Person*)eat2;
- (Person*)sleep2;
- (Person* (^)(void))eat4;
- (Person* (^)(void))sleep4;
- (Person* (^)(NSString*foodName))eat5;
- (Person* (^)(NSIntegerhour))sleep5;
.m
- (Person*)eat2
{
NSLog(@"%s",__FUNCTION__);
return self;
}
- (Person*)sleep2
{
NSLog(@"%s",__FUNCTION__);
return self;
}
- (Person*(^)(void))eat4
{
Person* (^eat4Block)(void) = ^ {
NSLog(@"%s",__FUNCTION__);
return self;
};
returneat4Block;
}
- (Person*(^)(void))sleep4
{
return^ {
NSLog(@"%s",__FUNCTION__);
return self;
};
}
- (Person*(^)(NSString*))eat5
{
Person* (^eat5Block)(NSString*) = ^(NSString*foodName) {
NSLog(@"吃: %@",foodName);
return self;
};
returneat5Block;
}
- (Person*(^)(NSInteger))sleep5
{
return^(NSIntegerhour) {
NSLog(@"睡了%ld小时",(long)hour);
return self;
};
}
调用
Person*person = [Personnew];
[[personeat2]sleep2];
[[personsleep2]eat2];
// 返回block,block中返回自身
person.eat4().sleep4();
person.sleep4().eat4();
// 返回block,block中返回自身
person.eat5(@"蛋糕").sleep5(8);
person.sleep5(8).eat5(@"面包");
网友评论