• ReactiveCocoa -函数式编程和响应式编程


    RAC具有函数式编程和响应式编程的特性。它主要吸取了.Net的 Reactive Extensions的设计和实现。

    ReactiveCocoa试图解决什么问题

    ReactiveCocoa试图解决以下3个问题:

    1. 传统iOS开发过程中,状态以及状态之间依赖过多的问题
    2. 传统MVC架构的问题:Controller比较复杂,可测试性差
    3. 提供统一的消息传递机制

     

    统一消息传递机制

    iOS开发中,每一行代码几乎都是在相应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过 CoreLocation)。但是这些事件都用不同的方式来处理,比如包括KVO、Notification、delegation、block以及target-action方式。。ReactiveCocoa为事件定义了一个标准接口,从而可以使用一些基本工具来更容易的连接、过滤和组合。使得以上各种消息传递机制都可以用RAC来完成

     

    由于Objective-C语言的内存管理是基于引用计数 的,为了避免循环引用问题,在block中如果要引用self,需要使用@weakify(self)@strongify(self)来避免强引用。另外,在使用时应该注意block的嵌套层数,不恰当的滥用多层嵌套block可能给程序的可维护性带来灾难。

    参考资料:

    http://www.cocoachina.com/ios/20150123/10994.html

    http://www.devtang.com/blog/2014/02/11/reactivecocoa-introduction/

  • 相关阅读:
    nyoj 199 无线网络覆盖
    hdoj 2682 Tree
    nyoj 845 无主之地1
    hdoj 1874 畅通工程续【dijkstra算法or spfa算法】
    hdoj 2544 最短路【dijkstra or spfa】
    hdoj 4548 美素数
    打表法
    hdoj 2098 分拆素数和
    hdoj 1262 寻找素数对
    bzoj1180,2843
  • 原文地址:https://www.cnblogs.com/canghaixiaoyuer/p/4687886.html
Copyright © 2020-2023  润新知