zoukankan      html  css  js  c++  java
  • ReactiveCocoa学习总结(1)

    1. 它是什么?

    官方解释:

    [RACSignal] is a push-driven stream with a focus on asynchronous event 
    delivery through subscriptions.

    其它解释:

    ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。

    信号是数据流,可以被绑定和传递。可以把信号想象成水龙头,只不过里面不是水,而是玻璃球(value),直径跟水管的内径一样,这样就能保证玻璃球是依次排列,不会出现并排的情况(数据都是线性处理的,不会出现并发情况)。水龙头的开关默认是关的,除非有了接收方(subscriber),才会打开。这样只要有新的玻璃球进来,就会自动传送给接收方。

    2.它的作用?

    代替target,代理,通知,kvo,不用关心调用顺序,直接考虑结果等等....

    3.如何工作?

    把所有事件都看成一个信号,信号创建之后只要有  订阅   就可以收到创建之后发送的数据! 同时我们也可以进行当前信号的 过滤、方法的跳转、然后返回对应的信号和数据...

    函数式编程(Functional Programming):使用高阶函数,例如函数用其他函数作为参数。

    响应式编程(Reactive Programming):关注于数据流和变化传播。

    4. ReactiveCocoa操作须知

    • 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream就有了操作处理方法。

    ReactiveCocoa操作思想

    • 运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执行结果的技术.
    • Hook用处:截获API调用的技术。
    • Hook原理:在每次调用一个API返回结果之前,先执行你自己的方法,改变结果的输出。

     转自链接: http://www.jianshu.com/p/87ef6720a096

  • 相关阅读:
    算法之--回溯法-迷宫问题【python实现】
    awk积累
    mysql自动化安装脚本(二进制安装)
    ${FUNCNAME[@]}和$LINENO使用
    shell脚本配置ssh免密登陆
    /etc/passwd和/etc/group文件详解
    Bagging与随机森林算法原理小结
    js之如何获取css样式
    Jetty源码学习-编译Jetty源码二三事
    maven安装和与IDE集成
  • 原文地址:https://www.cnblogs.com/gui-zi/p/6534886.html
Copyright © 2011-2022 走看看