Reactive Cocoa 响应式编程开发实例讲解-中篇,reactivecocoa

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 13:35 我要评论(0)

Reactive Cocoa 响应式编程开发实例讲解-中篇,reactivecocoa

上一篇文章作为开门篇讲述了Cocoa Reactive概述。

这里我们详细介绍一下CocoaReative在代码中的应用。

网上好多blog有人形容CocoaReative 中 signals是插座或者水龙头,感觉不是很好理解。我举个更贴近生活的,用电话订菜(餐馆是Signals,电话订阅是SubScriberNext)。

1.概述

Create一个Signal我们视为是一个支持电话订餐的餐馆,他们有很多菜,油盐酱醋就更不用说,当一个电话打进来首先,这个Signal就开始执行,等菜做好了,菜馆要做的是SendNext通知你一下,你呢?就出来拿,或者让他们送来,最后吃掉。分析一下在这期间,可能会有好多订阅者,菜馆只有一个,厨师会源源不断的炒菜(不要说什么如果菜馆没菜怎么办?太坑了),满足所有订阅者(电话预定)的需求。当然如果没人订阅这些配菜不会被炒,都处于配菜状态,所以,这些配菜可以用来组合,过滤什么的,以达到满足用户的口味(SubscriberNext)。怎么样这个举例不知道能否帮助你的理解。

后面的讲述将会拆解步骤来辅助大家理解不同的功能和类、方法。

//我是菜馆,有了我你们才有源源不断的饭菜可以吃

RACSignal *signal = [RACSignal createSignal:^ RACDisposable * (id<RACSubscriber> subscriber) {

NSLog(@"接单了");

NSLog(@"处理.....");

[subscriber sendNext:@"炒菜完成,打电话给客户"];

return nil;

}];

//有菜馆的菜单了,开始电话预定

[signal subscribeNext:^(id x){

NSLog(@"客户处理开始吃了:X是菜馆给的%@",x);

}];

这样不知道大家是否明白,反正我是明白了。提一个问题,如果没有电话预定,菜馆能做菜吗?(Signal能触发吗?)答案是:如果不怕赔钱,可以天天做好菜等着(估计没人吃,几天你的菜馆就关门了)。

2.Signals和它的两种状态-冷、热信号(其实就是菜馆有没有生意)

如果菜馆没有接到电话约定是不是生意很冷啊,所以叫做冷信号。如果不停的接单是不是生意红火啊,叫(红火不就是热吗)做热信号。那放到程序中怎么理解:

//我是菜馆,有了我你们才有源源不断的饭菜可以吃

RACSignal *signal = [RACSignal createSignal:^ RACDisposable * (id<RACSubscriber> subscriber) {

NSLog(@"接单了");

NSLog(@"处理.....");

[subscriber sendNext:@"炒菜完成,打电话给客户"];

//完成

[subscriber sendCompleted];

return nil;

}];

//如果后面没有订单我的生意怎么做啊!

一个Signal使用CreateSignal创建,这里没什么好讲的记住就可以了。

上面已经说了,如果没有订单我的生意怎么做,这就是冷Signal。

突然有一天,来生意了,结果来了一百个。是不是就火了,这就是热Signal。

//来生意了

//有菜馆的菜单了,开始电话预定

[signal subscribeNext:^(id x){

NSLog(@"客户处理开始吃了");

}];

到这里不知道到家是否有对Signal有个初步的认识,Signal是Reactive的核心,理解了,基本上你就可以驾驭这个框架做你想做的。它不仅仅有SendNext方法,还有

sendNext:其实生活中菜馆是把所有的菜做好了,才打电话通知你,程序中是这样的,超好一个菜就sendNext:客户就吃一个。明白了很像在饭店吃饭(对,就是这样,你就理解是在饭店吃饭(执行Signal),做好一个上一个(SendNext),你吃一个(subscribeNext:))。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...