zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    wordpress升级需设置ftp的解决方法
    用命令创建MySQL数据库
    MySQL创建用户与授权
    MySQL基本命令和常用数据库对象
    转换说明符和转换说明修饰符
    html-webpack-plugin
    数据库-之MySQL的dos命令
    浅谈Java拆箱、装箱
    Java基础问题10问
    Java单例类
  • 原文地址:https://www.cnblogs.com/canghaixiaoyuer/p/4687886.html
Copyright © 2011-2022 走看看