ReactuveCocoa解析之常用宏

1.RAC(TARGET, [KEYPATH, [NIL_VALUE]])

用来给某个对象的某个属性绑定信号,只要产生信号内容,就会把内容给属性赋值
使用方法:

//向_textField输入文字,显示在_label上
RAC(_label,text) = _textField.rac_textSignal;
2.RACTuplePack(...)

给RACTuple快速设置元组,效果类似于快速设置数组
使用方法:

// 包装元组
RACTuple *tuple = RACTuplePack(@1,@2);
3.RACTupleUnpack

把RACTuple(元组类)解包成对应的数据
使用方法:

    // 把参数中的数据包装成元组
    RACTuple *tuple = RACTuplePack(@"ky",@20);

    // 解包元组,会把元组的值,按顺序给参数里面的变量赋值
    // name = @"ky" age = @20
    RACTupleUnpack(NSString *name,NSNumber *age) = tuple;
4.RACObserve(self, name)

监听某个对象的某个属性,返回的是信号
使用方法:

[RACObserve(self.view, center) subscribeNext:^(id x) {

        NSLog(@"%@",x);
    }];
5.@weakify(Obj)@strongify(Obj)

用于解决blcok的循环引用问题。
使用方法:

//假设场景:Modal出来一个视图ModalViewController后,为它的属性_signal实例化出一个RACSignal对象,同时在它的block中引用ModalViewController。造成循环引用。
//弱引用self
@weakify(self);
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
  //将弱指针self强引用,保证self不会在这个block中被销毁
        @strongify(self)
        NSLog(@"%@",self);
        return nil;
    }];
    _signal = signal;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容