
RAC知识
rv0p111
之前由于一些原因博客没有更新,现在还是正常更新,继续分享..
展开
-
RAC浅析
什么是RAC? 其实RAC全称ReactiveCocoa,是GitHub上面一个开源的项目,其实RAC的整体的思想就是函数响应式编程。为什么这么说就好比是这样的有三个变量a,b,c,如果先前我们给a赋值为2,b赋值为1,这个时候如果我们让c=a+b,c是为3,但如果我们这个时候去改变a的值为1,这个时候c的值是不会改变的,所以其实RAC就可以帮我们做类似的事情就是如果我们a改变了,c也会改原创 2017-12-25 23:05:12 · 380 阅读 · 0 评论 -
RAC-bind的实现浅析
简单的先附上一段代码,这里就是给subject取绑定一个信号,然后subject去发送数据之后可以在^RACSignal * (id value, BOOL *stop)这个block进行处理,然后之后返回的话就返回[RACReturnSignal return:value]; 以处理完数据包装成一个信号,然后下面的bindSignal收到的就是我们处理过的数据了 //1.创建信号原创 2017-12-31 07:47:00 · 603 阅读 · 0 评论 -
RAC中的rac_textSignal浅析
这个地方想了很久,也去测试打印了一下,目前水平有限只能简单的说明下过程当我们使用了RAC去实时的监听文本框的变化,代码如下 RACSignal * signal1 = [_textField1 rac_textSignal]; [signal1 subscribeNext:^(id _Nullable x) { NSLog(@"%@",x); }];首先我原创 2018-01-04 11:45:02 · 3019 阅读 · 0 评论 -
RAC中rac_textSignal合并出现的问题
我们用过RAC中的combineLatest应该都知道,如果我们组合了两个信号,那么必须要两个信号都有数据的发送的时候才会去触发,三个信号就是三个以此类推,但是有个现象奇怪的就是,当我们给三个文本框的rac_textSignal给合并在一起,只要一个文本框改变就会去触发这是为什么?比如说下面的这样的代码 RACSignal * signal1 = [_textField1 rac_textS原创 2018-01-04 13:05:27 · 1279 阅读 · 0 评论 -
RAC中的@weakify和@strongify浅析
其实如果我们打开Xcode中查看预编译之后宏被替换的结果我们就会发现@weakify(self)被替换成了下面这个@autoreleasepool {} __attribute__((objc_ownership(weak))) __typeof__(self) self_weak_ = (self);其实如果我们去查看下自己写的解决循环引用的代码,会然后查看下预编译之后的结果其实和上面的是一原创 2017-12-29 16:42:28 · 1647 阅读 · 0 评论 -
RAC中的宏浅析
讲道理刚刚学RAC的时候点击宏进去的话其实是一脸懵逼的,然后自己看了下又看了几篇文章也有了一定的了解现在就简单的介绍下。一样的从@weakify着手,我们点击进去会看到下面的代码,其中关于rac_keywordify是在我的同类的文章中讲过,这里就不介绍了,这里主要想记录下metamacro_foreach_cxt(rac_weakify_,, __weak, __VA_ARGS__)//原创 2017-12-29 20:23:07 · 698 阅读 · 0 评论 -
RAC的基本使用
RAC其实可以帮我们做的事情很多很多,而且也很简单,并且代码和流水线一样这样下来也很好的阅读,能把业务逻辑放到一块进行处理,接下来就来简单的介绍下这里使用的版本是ReactiveObjC 3.0.0的版本1、代替代理,比如说我们想让按钮的点击事件本来在A.m中做的处理,想要在B.m中收到,其实我们用代理,当然用了RAC的时候就会更加简单,就比如说blueView里面有button,原创 2017-12-28 13:08:13 · 1006 阅读 · 0 评论