ReactiveCocoa之RAC常用宏(十)
/** * 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); }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: ReactiveCocoa之RAC合并(九)