美文网首页
关于ReactiveCocoa(RAC)的学习总结(一)

关于ReactiveCocoa(RAC)的学习总结(一)

作者: MM面包 | 来源:发表于2018-03-15 18:09 被阅读18次

    很久之前就看过一个关于RAC的视频教学,就觉得很酷,一直很忙,也没有来的及实践,终于,最近一段时间闲下来,有时间感受一波神级的操作。好用到根本停不下来有木有。

    但是首先,你得清楚RAC能做些什么,它到底是干哈的,不过就我目前了解的程度,我觉得可以大大节省代码量,完全可以代替协议,blocks回调,target-action机制,notifications和KVO,实现MVVM开发模式,但是又不仅仅只有这些功能,更深层次的还待详细深入。

    1.RAC的导入

    想信大家都是用cocoapod 导入工程,但是导入项目之后,使用RAC的时候出现,可能很多同学出现,找不到头文件的情况,也有找不到方法的情况,出现这种情况的小伙伴,不要急,没有配置好添加库的路径,一个方法是在targe->buildseting->otherLinkerFlags中添加$(inherited),或者是直接在target->buildPhases->linkBinaryWithLibraries中添加ReactiveCocoa的库就好啦,这样就可以愉快的玩耍啦。

    2.Rac的5个基本类

    ·RACSignal

    ·RACSubject

    ·RACSequence

    ·RACMulticastConnection

    ·RACCommand

    RACSignal

    信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。只有订阅了该信号量,才会进行下一步的处理。默认的话,只是单纯的一个信号源,即使监听的值改变了,也不会发生任何改变,只有订阅了该信号,才会触发。使用信号RACSignal的subscribeNext就能订阅。

    比如想要获取某个输入框输入的内容,就可以这样写:

    [_userNameTextField.rac_textSignal subscribeNext:^(NSString *text) {

            NSLog(@"输入的内容%@", text);

        }];

    是不是很方便,就可以不需要签代理,来获取内容了,

    或者给按钮添加点击事件:

    [[self.loginButton rac_signalForControlEvents:UIControlEventTouchUpInside]

        subscribeNext:^(id x) {

       }];

    今天就简单的总结一下,最基本的用法,后续还有

    ·关联model

    ·组合信号

    ·合并信号

    ·flattenMap

    ·flatten

    ·filter

    ·map-filter映射和过滤

    ·RAC()

    相关文章

      网友评论

          本文标题:关于ReactiveCocoa(RAC)的学习总结(一)

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