【iOS编程思想】ReactiveCocoa (5)常用的宏

本文介绍了ReactiveCocoa(RAC)中几种实用的技术,包括KVO的建立、元组的包装、信号的绑定以及weak和strong引用的管理。通过具体的代码示例展示了如何运用这些技术来提高iOS应用的响应性和代码质量。

1、建立KVO

宏的样子:

145436_zYHS_2279344.png

使用方法:

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

2、包装元组

宏的样子:

145523_GSwb_2279344.png

使用方法:

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

3、绑定信号

宏的样子:

145639_J5X9_2279344.png

使用方法:

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

4、@weakify @strongify

@weakify(self);
相当于:
__weak typeof(self) weakSelf = self;

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

用法:

@weakify(self);

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

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

转载于:https://my.oschina.net/Misayalvyuan/blog/725663

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值