美文网首页
RAC宏介绍

RAC宏介绍

作者: NextStepPeng | 来源:发表于2018-01-07 13:01 被阅读0次

1、RAC::把一个对象的某个属性绑定一个信号,只要发出信号,就会把信号的内容给对象的属性赋值

// 例如:给label的text属性绑定了文本框改变的信号

RAC(self.label, text) =self.textField.rac_textSignal;

//    [self.textField.rac_textSignal subscribeNext:^(id x) {

//        self.label.text = x;

//    }];

2、RACObserve:快速的监听某个对象的某个属性改变

/**

*  KVO

*  RACObserve:快速的监听某个对象的某个属性改变

*  返回的是一个信号,对象的某个属性改变的信号

*/

[RACObserve(self.view, center) subscribeNext:^(idx) {

NSLog(@"%@", x);

}];

3、@weakify(self):解决循环引用问题

/**

*  循环引用问题

*/

@weakify(self)

RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id subscriber) {

@strongify(self)

NSLog(@"%@",self.view);

returnnil;

}];

_signal = signal;

使用 @weakify(self)和@strongify(self)来避免循环引用

解释:通过编译看下图,对比OC 传统的__weak 和@weakify(self) 其实是一样,好处是不需要像OC对待循环引用 一个个替换成 weakSelf,

图一 图2

4、RACTuple:元组

/**

* 元祖

* 快速包装一个元组

* 把包装的类型放在宏的参数里面,就会自动包装

*/

RACTuple *tuple = RACTuplePack(@1,@2,@4);

// 宏的参数类型要和元祖中元素类型一致, 右边为要解析的元祖。

RACTupleUnpack_(NSNumber*num1,NSNumber*num2,NSNumber* num3) = tuple;// 4.元祖

// 快速包装一个元组

// 把包装的类型放在宏的参数里面,就会自动包装

NSLog(@"%@ %@ %@", num1, num2, num3);

RACTupleUnpack 宏,用来解析元组。

他需要的参数就是 键、值,右边的x就是你需要进行处理的元组了:如下

NSDictionary*dict =@{@"user":@"admin",@"age":@"20",@"gender":@"man"};

RACSequence *sequence = dict.rac_sequence;RACSignal *signal = sequence.signal;

[signal subscribeNext:^(idx) {

//进行对数据的处理,如下}];

//可以将上述代码转换如下

[dict.rac_sequence.signal subscribeNext:^(idx) { RACTupleUnpack(NSString*key,NSString*value) = x;

NSLog(@"%@-%@",key,value);

}];

相关文章

  • 小驴拉磨之—ReactiveCocao(RAC)一些重要的宏

    使用过RAC的都知道RAC的宏是非常强大的,在这我给大家介绍一些重要的宏。 元宏(RAC中最基本一个宏,PS:那个...

  • RAC宏介绍

    1、RAC::把一个对象的某个属性绑定一个信号,只要发出信号,就会把信号的内容给对象的属性赋值 // 例如:给la...

  • RAC(ReactiveCocoa)介绍(十一)——RAC宏定义

    在编程领域里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器在遇到宏时...

  • RAC使用

    RAC常用宏 KVO监听使用 RAC宏使用 信号类使用 使用信号模拟代理 rac_sequence遍历字典 解包元...

  • RAC宏

    一、基础宏 1.metamacro_stringify 这样写的目的是预防参数中传入宏定以后,以宏定义的名字做为参...

  • RxSwift介绍(一)——RxSwift初探

    之前介绍了RAC在Objective-C环境下RACSignal信号订阅使用流程、宏定义以及各种信号的操作使用。作...

  • RAC一些常见用法(五)

    本demo详见github 1.常见的用法 2.RAC常见的宏 3.发送验证码 友情链接: RAC(一) RAC(...

  • ReactiveCocoa在swift情况下使用宏

    在swift的环境下,配置RAC和RACObserve宏需要另外添加文件,如下: 在学习swift导入RAC的过程...

  • Rac宏操作

    keypath 一个参数时, 取.后面的子字符串。如果没有.就取字符串本身二个参数时, 取的第二个参数的字符串。 ...

  • RAC-宏

    一、概要 RAC :给某个对象绑定一个属性 RACObserve :监听某个对象的某个属性 RACTuplePac...

网友评论

      本文标题:RAC宏介绍

      本文链接:https://www.haomeiwen.com/subject/fxxwgxtx.html