zoukankan      html  css  js  c++  java
  • ReactiveCocoa函数响应式编程

     
    • ReactiveCocoa函数响应式编程
      • github团队开发的重量级的开源框架
      • 核心概念是信号signal(只要数据改变,信号内部接收到数据,就会马上发出数据),用信号接管了iOS的所有事件
      • iOS的事件包括addTarget,delegate,通知,KVO,网络异步回调
      • 好处是:
        • 直观和灵活。直观的代码容易编写、阅读和维护,灵活的特性便于应对变态的需求
        • 利用block将相关代码集中到一块,一定程度上解决代码分散的问题
        • RAC有一个主要的优点,就是提供了一个单一的,统一的方法去处理异步的行为,包括delegate方法,blocks回调,target-action机制,notifications和KVO.
        • 举个例子,一个text field能够绑定到最新状态,即使它在变,而不需要用额外的代码去更新text field每一秒的状态.它有点像KVO,但它用blocks代替了重写-observeValueForKeyPath:ofObject:change:context:.
        • 很多Cocoa编程集中在响应user events或者改变application state.这样写代码很快地会变得很复杂,就像一个意大利面,需要处理大量的回调和状态变量的问题,
        • 这个模式表面上看起来不同,像UI回调,网络响应,和KVO, notifications,实际上有很多的共同之处。RACSignal统一了这些API,这样他们能够组装在一起然后用相同的方式操作.
      • 注意地方:
        • 注意循环引用,
        • ViewModel发生变化的时候怎么通知ViewController并且相应的改变View呢?这就是ReactiveCocoa框架要干的事情了。(MVVM与ReactiveCocoa的关系,配合工作)
        • signal一创建是冷信号,不会被执行
        • 只有signal有订阅者(3种类型next,error,complement)之后,热信号,才会执行
  • 相关阅读:
    Silverlight 调用GP服务第一篇之发布GP服务(Geoprocessing Service)
    SQLServer中char、varchar、nchar、nvarchar的区别:
    word中带圈符号如何手动输入
    js中循环for
    正则表达式总结
    SQL Server 2008 数据库 不允许保存修改。
    多线程三种锁Monitor,lock,Mutex
    Lambda和Linq的用法
    RowDeleting和RowDeleted区别
    ASP.NET中aspx.cs页面代码中的换行方法
  • 原文地址:https://www.cnblogs.com/hanfengs/p/5709253.html
Copyright © 2011-2022 走看看