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;