申请一个别名属性xxName
@interface SCCModuleParam ()
@property (nonatomic, copy) NSString *paramName;
@property (nonatomic) SCCParamType paramType;
@property (nonatomic) BOOL isStrict;
@end
申明一个name方法.用xxName内部属性去接name方法
- (SCCModuleParam *(^)(NSString *))name {
return ^SCCModuleParam *(NSString *name) {
NSParameterAssert(name);
self.paramName = name;
return self;
};
}
这样我们就可以实现.语法来访问name方法
大致效果如下
[moduleDes method:^(SCCModuleMethod * _Nonnull method) {
[[method.name(@"open.present").selector(@selector(open_present:callback:)) parameters:^(SCCModuleParamEnumerator * _Nonnull enumerator) {
enumerator.next.name(@"dic").type(SCCParamTypeMap);
enumerator.next.name(@"block").type(SCCParamTypeBlock);
}] resultType:SCCParamTypeObject];
}];