iOS开发ReactiveCocoa学习笔记(二)

本文介绍了ReactiveCocoa(RAC)中常用的宏定义及其用法,包括属性绑定、属性监听、弱引用与强引用转换等,并提供了具体的代码示例。

RAC 中常见的宏:

使用宏定义要单独导入 #import <RACEXTScope.h>

 一.
    RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于给某个对象的某个属性绑定
     只要文本框文字改变,就会修改label的文字
    RAC(self.labelView,text) = _textField.rac_textSignal;

二.

    RACObserve(self, name):监听某个对象的某个属性,返回的是信号。
    [RACObserve(self.view, center) subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];

    当RACObserve放在block里面使用时一定要加上weakify,不管里面有没有使用到self;否则会内存泄漏,因为RACObserve宏里面就有一个self
    @weakify(self);
    RACSignal *signal3 = [anotherSignal flattenMap:^(NSArrayController *arrayController) {
     Avoids a retain cycle because of RACObserve implicitly referencing self
        @strongify(self);
        return RACObserve(arrayController, items);
    }];

三.

    @weakify(Obj)和@strongify(Obj),一般两个都是配套使用,在主头文件(ReactiveCocoa.h)中并没有导入,需要自己手动导入,RACEXTScope.h才可以使用。但是每次导入都非常麻烦,只需要在主头文件自己导入就好了

四.

    RACTuplePack:把数据包装成RACTuple(元组类)
     把参数中的数据包装成元组
    RACTuple *tuple = RACTuplePack(@10,@20);

五.

    RACTupleUnpack:把RACTuple(元组类)解包成对应的数据
    // 把参数中的数据包装成元组
    RACTuple *tuple = RACTuplePack(@"xmg",@20);
    
    // 解包元组,会把元组的值,按顺序给参数里面的变量赋值
    // name = @"xmg" age = @20
    RACTupleUnpack(NSString *name,NSNumber *age) = tuple;

 

转载于:https://www.cnblogs.com/ningmengcao-ios/p/6803904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值