#import "ViewController.h"
#import "Person.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
Person *p=[[Person alloc]init];
//实现链式语法,主要包含 点语法、小括号调用、连续访问 三部分
// 点语法在编译时,p.who 会被替换成 [p who],返回一个block
//1. p.who -> 获得一个 Block;
//2. Block实现 并返回了 P, p = p.who(@"我是谁")
//3. p.调用后边的方法
p.who(@"我是谁").where(@"我在哪").doSomething(@"我在干啥?");
}
#import <Foundation/Foundation.h>
@interface Person : NSObject
//声明方法名为: xxx,该方法的返回值类型为一个 Block,而此 Block 的返回值设为类本身。
-(Person * (^)(NSString *who))who;
-(Person * (^)(NSString *where))where;
-(Person * (^)(NSString *thing))doSomething;
@end
#import "Person.h"
@implementation Person
-(Person * (^)(NSString *who))who{
return ^(NSString *who){
NSLog(@"%@",who);
return self;
};
}
-(Person * (^)(NSString *where))where{
return ^(NSString *where){
NSLog(@"%@",where);
return self;
};
}
-(Person * (^)(NSString *thing))doSomething{
return ^(NSString *thing){
NSLog(@"%@",thing);
return self;
};
}
@end