Home ReactiveCocoa (5)常用的宏
Post
Cancel

ReactiveCocoa (5)常用的宏

1、建立KVO

宏的样子:

使用方法:

1
2
3
4
5
6
7
//1 KVO
- (void)KVO{
    // 只要这个对象的属性一改变就会产生信号
    [RACObserve(self.view, frame) subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
}

2、包装元组

宏的样子:

使用方法:

1
2
3
4
5
6
7
//2 包装元组
- (void)RACTuplePack{
    //RACTuplePack()    包装元组
    RACTuple * tuple = RACTuplePack(@1,@2);
    
    NSLog(@"%@",tuple[0]);
}

3、绑定信号

宏的样子:

使用方法:

1
2
3
4
5
6
7
8
9
10
//3 RAC()
- (void)RAC{
    //监听文本框内容
    [_textField.rac_textSignal subscribeNext:^(id x) {
        _label.text = x;
    }];
    
    //用来给某个对象的某个属性绑定信号 只要产生信号内容 就会把内容给属性赋值
    RAC(_label,text) = _textField.rac_textSignal;
}

4、@weakify @strongify

1
2
3
4
5
6
7
@weakify(self);
相当于:
__weak typeof(self) weakSelf = self;

@strongify(self);
相当于:
__strong typeof(weakSelf) strongSelf = weakSelf;

用法:

1
2
3
4
5
6
7
8
@weakify(self);

_signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
    
    @strongify(self);
    return nil;
    
}];

这两个宏一定成对出现,先weak再strong.可以很好的管理Block内部对self的引用。

This post is licensed under CC BY 4.0 by the author.

ReactiveCocoa (4)常用方法集

ReactiveCocoa (1)简介和安装