ReactiveCocoa常见宏。
1 RAC(TARGET, [KEYPATH, [NIL_VALUE]])
:用于给某个对象的某个属性绑定。
基本用法
//1.`RAC(TARGET, [KEYPATH, [NIL_VALUE]])`:用于给某个对象的某个属性绑定。
RAC(self.label,text) = self.textField.rac_textSignal;
//相当于:
// [self.textField.rac_textSignal subscribeNext:^(id x) {
// self.label.text = x;
// }];
2RACObserve(self, name)
:监听某个对象的某个属性,返回的是信号。
基本用法
//`RACObserve(self, name) `:监听某个对象的某个属性,返回的是信号。
[RACObserve(self.view,frame) subscribeNext:^(id x) {
NSLog(@"x:%@",x);
}];
3 @weakify(Obj)和@strongify(Obj)
,一般两个都是配套使用,解决循环引用问题.
@weakify(self);
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
@strongify(self)
NSLog(@"%@",self);
return nil;
}];
_signal = signal;
其中 _signal 定义使用strong定义!
4. RACTuplePack
:把数据包装成RACTuple(元组类)
RACTuple *tuple = RACTuplePack(@1,@2);
5 RACTupleUnpack
:把RACTuple(元组类)解包成对应的数据。
//把一个对象包装成元组对象
RACTuple *tuple = RACTuplePack(@"Xuewei",@"18");
//解包元组,把元组的值,按顺序给参数里面的变量赋值
RACTupleUnpack(NSString *name,NSString *age) = tuple;
NSLog(@"name:%@ - age:%@",name,age);
解析元组