ReactiveCocoa之RAC常用宏(十)

来源:互联网 发布:java调用ireport模板 编辑:程序博客网 时间:2024/06/06 08:46
/** *  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);    }

0 0
原创粉丝点击