ReactiveCocoa之RAC常用宏(十)
来源:互联网 发布:c语言中char是几位 编辑:程序博客网 时间:2024/05/23 17:22
- /**
- * RAC有许多强大而方便的宏。
- */
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- [self testAndtest2];
- }
- /**
- *RAC宏
- */
- - (void)test
- {
- // RAC:把一个对象的某个属性绑定一个信号,只要发出信号,就会把信号的内容给对象的属性赋值
- // 给label的text属性绑定了文本框改变的信号
- RAC(self.label, text) = self.textField.rac_textSignal;
- // [self.textField.rac_textSignal subscribeNext:^(id x) {
- // self.label.text = x;
- // }];
- }
- /**
- * KVO
- * RACObserveL:快速的监听某个对象的某个属性改变
- * 返回的是一个信号,对象的某个属性改变的信号
- */
- - (void)test2 {
- [RACObserve(self.view, center) subscribeNext:^(id x) {
- NSLog(@"%@", x);
- }];
- }
- - (void)testAndtest2 // textField输入的值赋值给label,监听label文字改变,
- {
- RAC(self.label, text) = self.textField.rac_textSignal;
- [RACObserve(self.label, text) subscribeNext:^(id x) {
- NSLog(@"====label的文字变了");
- }];
- }
- /**
- * 循环引用问题
- */
- - (void)test3 {
- @weakify(self)
- RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
- @strongify(self)
- NSLog(@"%@",self.view);
- return nil;
- }];
- _signal = signal;
- }
- /**
- * 元祖
- * 快速包装一个元组
- * 把包装的类型放在宏的参数里面,就会自动包装
- */
- - (void)test4 {
- RACTuple *tuple = RACTuplePack(@1,@2,@4);
- // 宏的参数类型要和元祖中元素类型一致, 右边为要解析的元祖。
- RACTupleUnpack_(NSNumber *num1, NSNumber *num2, NSNumber * num3) = tuple;// 4.元祖
- // 快速包装一个元组
- // 把包装的类型放在宏的参数里面,就会自动包装
- NSLog(@"%@ %@ %@", num1, num2, num3);
- }
1 0
- ReactiveCocoa之RAC常用宏(十)
- ReactiveCocoa之RAC常用宏(十)
- ReactiveCocoa之RAC内存管理(十二)
- ReactiveCocoa之RAC映射(七)
- ReactiveCocoa之RAC过滤(八)
- ReactiveCocoa之RAC合并(九)
- ReactiveCocoa之RAC映射(七)
- ReactiveCocoa之RAC过滤(八)
- ReactiveCocoa之RAC合并(九)
- ReactiveCocoa之RAC宏展开解析【iOS源码阅读】
- iOS开发之ReactiveCocoa框架(RAC)第一篇
- XZ_iOS之RAC(ReactiveCocoa)的介绍和使用
- ReactiveCocoa 浅谈RAC-(一)
- iOS开发:ReactiveCocoa(RAC)应用场景
- iOS Reactivecocoa(RAC)原理分析
- iOS开发之ReactiveCocoa框架(RAC)第二篇登录实例
- iOS开发之ReactiveCocoa框架(RAC)第三篇实例颜色选择器
- iOS开发之ReactiveCocoa框架(RAC)第四篇构建一个信号量
- Zookeeper学习(一)
- 【Java学习】java语言的执行模式--半编译和半解释型
- docker file intro
- 牛顿-拉夫逊方法(Newton-Raphson method)
- MySQL 如何准备一亿条记录的表来测试
- ReactiveCocoa之RAC常用宏(十)
- before noip 2016
- H264中的CABAC及FFMPEG中的实现
- linux进程间通讯-命名管道
- 强大的图片加载框架Fresco的使用
- 使用RecyclerView 简单实现QQ好友列表展开效果
- Android OrmLite与SQLite数据库操作
- 【1】-3 Reentrance Lockout (重入锁死)
- Android研发安全3-Service安全