美文网首页
iOS链式编程学习笔记

iOS链式编程学习笔记

作者: uubird | 来源:发表于2018-03-05 14:53 被阅读0次

概念:像这样top.equalTo(self.view).offset(60)通过”点”语法,将需要执行的代码块连续的书写下去,就是链式编程.它能使代码简单易读,书写方便。

原理:保证每个方法执行之后,都返回对象本身,然后对象本身通过点语法再调用别的方法,以此实现链式执行。点语法其实是oc中取属性的一种语法。oc中比较神奇的一点是,即使没有属性,只有方法,点语法也可以把一个方法当做getter 方法来用,可以点式调用,像 property 一样。

代码:

@interface Test : NSObject

-(Test *)run;

-(Test * (^)(NSString *))testPrint;

@end

@implementation Test

-(Test *)run {

    NSLog(@"----------------run-------------------");

    return self;

}

-(Test * (^)(NSString *))testPrint {

    return ^(NSString * str){

        NSLog(@"----------------%@-------------------",str);

        return self;

    };

}

@end

Test *t = [[Test alloc]init];

    t.run;

    t.testPrint(@"000000000");

    [t testPrint](@"3333333333333");

    t.run.testPrint(@"1111111111");

    [t run].testPrint(@"22222222222");

    [[t run] testPrint](@"3333333333333");

t.run很好理解,直接调用了getter方法。-(Test *)run。而且返回了self对象。

t.testPrint(@"000000000"); 其实应该这样理解:t.testPrint (@"000000000")

t.testPrint 调用了getter方法,-(Test * (^)(NSString *))testPrint 返回了一个block。block后边加上带参数的括号,执行这个block,最后block执行完成之后返回了self对象。

这两点理解之后,下边的几个调用原理也就显而易见了。

总结:ios中链式编程是利用点语法实现的,在实际应用中,如果方法需要传参数,那么就可以用block的getter方法,如果不需要传参,就像例子中的run方法,可以不用block。具体怎么实现要看需求。

相关文章

  • iOS链式编程学习笔记

    概念:像这样top.equalTo(self.view).offset(60)通过”点”语法,将需要执行的代码块连...

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • 笔记: iOS 链式编程

    链式编程的介绍与Masonry 首先看一下OC下使用优秀第三方框架Masonry在实现一个自动布局时候的实现代码:...

  • 链式编程总结

    链式编程总结 @(iOS) 研究了一下链式编程,但是感觉项目中用处不是很多。 介绍 1.什么时候使用链式编程?在面...

  • iOS 链式编程简单的使用

    iOS 链式编程简单的使用 链式编程-顾名思义,链式,连贯性为其主要特征,放在编程领域来讲,说简单点就是把一系列的...

  • iOS-链式编程思想

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式编程

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式、函数式和响应式编程

    原文编程思想-iOS链式、函数式和响应式编程 在了解链式、函数式和响应式编程前,我们需要回顾下Block,它在下面...

  • 链式编程 函数编程---iOS笔记摘录

    链式编程 UILabel 使用 UILabel+LinkBlock.h UILabel+LinkBlock.m 函数编程

网友评论

      本文标题:iOS链式编程学习笔记

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