ReactiveCocoa
来源:互联网 发布:json接口api 编辑:程序博客网 时间:2024/06/05 07:14
函数式编程 + 响应式编程 =函数响应式编程
ReactiveCocoa 主要解决了一下的问题:
1、UI数据绑定
UI 控件通常需要绑定一个事件,RAC可以方便的绑定任何数据流到控件上。
2、用户交互事件绑定
RAC 为可交互的 UI控件提供一系列能够发送 Signal信号的方法,这些数据流会在用户交互中相互传递。
3、解决状态以及状态之间依赖过多的问题
有了RAC绑定,可以不用关心各种复杂的状态,isSelected ,isFinished等,也解决了这些状态在后期维护艰难的问题。
4、消息传递机制的统一
OC 中的消息传递的方式通常有:
Delegate
通知(NotificationCenter)
Block CallBack
Target-Action
KVO
开发中常用笔记:
1、代替代理: 对应方法:rac_signalForSelector 需求:自定义View,监听View中按钮点击 之前都是需要通过代理监听,点击按钮的时候,通知代理做事情 rac_signalForSelector:把调用某个对象的方法的信息转换成信号,只要调用这个方法,就会发送信号。 这里表示只要View调用clickViewButton,就会发出信号,订阅就好了。 [[self.View rac_signalForSelector:@selector(clickViewButton)] subscribeNext:^(id x) { NSLog(@"点击了视图上的按扭"); }];
2、代替 KVO:(监听某个对象的属性改变) 对应方法:rac_valuesAndChangesForKeyPath [[self.View rac_valuesAndChangesForKeyPath:@"frame" options:NSKeyValueObservingOptionNew observer:nil] subscribeNext:^(id x) { NSLog(@"%@",x); }];
3、监听事件: 对应方法:rac_signalForControlEvents 把按钮点击事件转换为信号,点击按钮,就会发送信号 [[self.button rac_signalForControlEvents:UIControlEventTouchUpInside ] subscribeNext:^(id x) { NSLog(@"点击了按扭"); }];
4、代替通知:(监听某个通知) 对应方法:rac_addObserverForName [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillChangeFrameNotification object:nil] subscribeNext:^(id x) { NSLog(@"键盘frame发生改变%@",x); }];
5、监听文本框文字改变: 对应方法:rac_textSignal(只要文本框发出改变就会发出这个信号) [self.textfield.rac_textSignal subscribeNext:^(id x) { NSLog(@"%@",x); }];
0 0
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- 数据工程师-面试总结1
- SAPUI5 (01) - OpenUI5环境搭建
- win7 64位旗舰版系统耳机或音箱没有声音的解决方法
- 指针数组和数组指针
- Remove Linked List Elements
- ReactiveCocoa
- 去除字符串中重复出现的字符
- 【LeetCode-414】Third Maximum Number(C++)
- 2016-java基础篇-jdbc
- Filter基本案例(二)
- FAT32 R0.12b f_mkfs应用实例
- bzoj2599: [IOI2011]Race
- 学习python的第四十一天-第四章 python数据结构
- 小白学习无人机(三)