美文网首页
iOS中的链式编程

iOS中的链式编程

作者: 十个圈圈 | 来源:发表于2018-10-25 18:33 被阅读0次

    之前一直没有使用Masonry,最近因为比较闲,就尝试使用了下Masonry,但是Masonry这种和Objec-C大相庭径的写法,搞得我有点懵逼,于是今天简单学习了一下链式编程。为了巩固知识,于是有了这篇文章。不足之处希望大家不吝赐教。

    在笔者的理解中,其实链式编程相对于我们常用的方法,最大的区别在于返回值,我们通常返回值类型为void 或其他类型的值,而链式编程返回的却是block,而block又返回了对象本身,而类方法也可以根据我们的需求来返回类对象或者作为初始化方法返回一个对象。而且可以多个方法之间可以任意调用,基本上可以无限调用下去,确实很像链子。莫非这就是链式编程的名字的由来嘛。。😄

    下面结合代码来~

创建一个Person类,直接贴代码

其中3是无返回值无参,4是有返回值无参,5是有返回值有参,最后两个 是有返回值多参。eat 和 sleep分别对应两种写法。eatAndSleep是为了验证笔者的猜想,将block作为返回值,结果证明猜想正确。

- (void(^)(void))eat3; 

- (void(^)(void))sleep3;

- (Person *(^)(void))eat4;

- (Person *(^)(void))sleep4;

- (Person *(^)(NSString* name))eat5;

- (Person *(^)(NSInteger hour))sleep5;

- (Person *(^)(NSString *food, NSInteger hour))eatAndSleep1;       - (Person *(^)(NSString *food, NSInteger hour))eatAndSleep2;

- (eatAndSleep3)eatAndSleep3;

typedef Person*(^eatAndSleep3)(NSString*food,NSIntegerhour);

下面贴上运行效果的图片

以上是笔者参考网上的资料,进行的一些关于链式编程简单的学习。

为了验证学习效果,笔者自己使用链式编程写了一个UIView的category的具体如下。

各位可以参考一下,自己实现一下。我将demo上传到了GitHub,有兴趣的各位可以下载参考一下。链式编程学习Demo GitHub下载地址

相关文章

  • 工作iOS技术总结

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

  • iOS-链式编程思想

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

  • iOS链式编程

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

  • ReactiveObjC入门

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

  • 链式编程总结

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

  • IOS_编程思想_链式编程练习

    在之前的两篇文章中已经简单的介绍了IOS的编程思想,那在此处写一个链式编程的联系来加深对链式编程思想的理解!!! ...

  • iOS中的链式编程

    前言 作为iOS开发者,很多人看到这个标题最先想到的可能是Masonry和SnapKit。那么什么是链式编程?为什...

  • iOS中的链式编程

    之前一直没有使用Masonry,最近因为比较闲,就尝试使用了下Masonry,但是Masonry这种和Obje...

  • iOS中的链式编程

    1.什么是链式(函数式)编程? 通过高阶函数以点为连接将多个函数连接在一起完成参数传递和复杂的操作! 例如在Mas...

  • iOS链式编程之block作为返回值使用

    链式编程近几年算是一个比较火的概念了,使用过masonry的人应该也比较熟悉链式编程这个概念,那么,在iOS中是怎...

网友评论

      本文标题:iOS中的链式编程

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