美文网首页
OC 如何实现链式语法

OC 如何实现链式语法

作者: dushuzhong | 来源:发表于2018-11-21 18:12 被阅读14次

    申请一个别名属性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];
     }];
    
    

    相关文章

      网友评论

          本文标题:OC 如何实现链式语法

          本文链接:https://www.haomeiwen.com/subject/vhacqqtx.html