美文网首页
IOS 链式编程思想

IOS 链式编程思想

作者: 越天高 | 来源:发表于2020-08-12 18:44 被阅读0次

    在开发中我们经常使用到,第三方框架,他们可以用点语法来实现函数不断的调用,现在我们来实现一下基本的原理
    首先在OC中,方法的调用使用[ ];如果是使用的xxx(),说明使用的是block

    - (void (^)(void))test
    {
        NSLog(@"A");
        void (^myBlock)(void) = ^
        {
            NSLog(@"B");
        };
        NSLog(@"C");
        return myBlock;
    }
    调用的话
    self.test()
    

    如果我们要不断的调用,说面返回值类型是一个block,然后还可以继续使用.语法,说明了block也有一个返回值,他的返回值就是当前的对象,
    简单演示一个加法计算器

    
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface JiSuanQi : NSObject
    @property (nonatomic, assign) CGFloat result;
    
    - (JiSuanQi* (^)(CGFloat))add;
    @end
    
    NS_ASSUME_NONNULL_END
    
    
    @implementation JiSuanQi
    - (JiSuanQi * _Nonnull (^)(CGFloat))add
    {
        return  ^(CGFloat num)
        {
            self.result  += num;
            return self;
        };
    }
    @end
    

    使用

    JiSuanQi *newTool = [[JiSuanQi alloc] init];
        newTool.add(5).add(6.4);
        NSLog(@"%f", newTool.result);
        
    

    相关文章

      网友评论

          本文标题:IOS 链式编程思想

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