ReactiveCocoa学习笔记--用法

1、监测UI变量的变化

return 后把值传递下去。

1.1、输出

[self.usernameTextField.rac_textSignal subscribeNext:^(id x){
  NSLog(@"%@", x);
}];

1.2、过滤->输出

[[self.usernameTextField.rac_textSignal
  filter:^BOOL(NSString*text){
    return text.length > 3;
  }]
  subscribeNext:^(id x){
    NSLog(@"%@", x);
  }];

1.3、改变数据类型->过滤->输出

[[[self.usernameTextField.rac_textSignal
  map:^id(NSString*text){
    return @(text.length);
  }]
  filter:^BOOL(NSNumber*length){
    return[length integerValue] > 3;
  }]
  subscribeNext:^(id x){
    NSLog(@"%@", x);
  }];

1.4、subscribeNext的另一种写法

RAC宏允许直接把信号的输出应用到对象的属性上。RAC宏有两个参数,第一个是需要设置属性值的对象,第二个是属性名。每次信号产生一个next事件,传递过来的值都会应用到该属性上

RAC(self.passwordTextField, backgroundColor) =
  [validPasswordSignal
    map:^id(NSNumber *passwordValid){
      return[passwordValid boolValue] ? [UIColor clearColor]:[UIColor yellowColor];
    }];
时间: 2024-11-06 12:33:38

ReactiveCocoa学习笔记--用法的相关文章

iOS开发ReactiveCocoa学习笔记(-)

学习 RAC 我们首先要了解 RAC 都有哪些类 RACSignal RACSubject RACSequence RACMulticastConnection RACCommand 在学习的时候写了一个小 demo 来分别介绍每个类的作用,gitHub 地址: https://github.com/SummerHH/ReactiveCocoa.git demo 的目录结构如下 RAC学习起来的特点 学习起来比较难 团队开发的时候需要谨慎使用 团队代码需要不断的评审,保证团队中所有人代码的风格一

iOS开发ReactiveCocoa学习笔记(四)

ReactiveCocoa常见操作方法介绍: demo地址:https://github.com/SummerHH/ReactiveCocoa.git p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400; min-height: 13.0px }

iOS开发ReactiveCocoa学习笔记(二)

RAC 中常见的宏: 使用宏定义要单独导入 #import <RACEXTScope.h> 一. RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于给某个对象的某个属性绑定 只要文本框文字改变,就会修改label的文字 RAC(self.labelView,text) = _textField.rac_textSignal; 二. RACObserve(self, name):监听某个对象的某个属性,返回的是信号. [RACObserve(self.view, cen

ReactiveCocoa学习笔记

1. RACSignal使用步骤及底层实现 (1) 创建信号 (RACSignal底层实现:把didSubscribe保存到信号中,还不会触发.) createSignal的意义是,创建一个signal对象,并且把参数赋值给signal的名为didSubscribe的属性,这个block的参数是subscriber,返回RACDisposable. + (RACSignal *)createSignal:(RACDisposable * (^)(id<RACSubscriber> subscr

高大上函数响应式编程框架ReactiveCocoa学习笔记1 简介

原创文章,转载请声明出处哈. ReactiveCocoa函数响应式编程 一.简介 ReactiveCocoa(其简称为RAC)是函数响应式编程框架.RAC具有函数式编程和响应式编程的特性.它主要吸取了.Net的 Reactive Extensions的设计和实现. 函数式编程 (Functional Programming) 函数式编程也可以写N篇,它是完全不同于OO的编程模式,这里主要讲一下这个框架使用到的函数式思想. 1) 高阶函数:在函数式编程中,把函数当参数来回传递,而这个,说成术语,我

ReactiveCocoa 学习笔记

1 // 2 // RootViewController.m 3 // SimpleWeather 4 // 5 // Created by TBXark on 15-4-17. 6 // Copyright (c) 2015年 Ryan Nystrom. All rights reserved. 7 // 8 9 #import "RootViewController.h" 10 #import <ReactiveCocoa.h> 11 #import <TSMes

【Ext.Net学习笔记】02:Ext.Net用法概览、Ext.Net MessageBus用法、Ext.Net布局

Ext.Net用法概览 Ext.Net还是很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,原文博主推荐书籍:<Ext.Net Web 应用程序开发教程>,是英文的,有基础的可以看下,可以百度到PDF文档的. Ext.Net与ExtJS代码比较 上一篇中我们创建了一个使用Ext.Net创建了一个window窗口,代码非常简单: <ext:Window runat="server" ID="win" Title="示

【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)

GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之后,在Ext.Net GridPanel的行头会出现一个展开图标,点击图标以后能够将这一行展开: 使用XTemplate实现行折叠/展开 这是最简单的一种实现,在上一篇文章:[Ext.Net学习笔记]05:Ext.Net GridPanel的用法(包含Filter.Sorter.Grouping.汇

Dynamic CRM 2013学习笔记(二)插件基本用法及调试

插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可以将插件认为是针对 Microsoft Dynamics CRM 触发的事件的处理程序.您可以让插件订阅或注册已知事件集,以便在事件发生时运行您的代码.   一.基本用法 1. 要继承IPlugin,并实现Excute方法 ( 1- 3 行) 2. 从service provide 里获取执行上下文 (