美文网首页
RAC学习笔记

RAC学习笔记

作者: 优酷巧克力 | 来源:发表于2017-10-15 12:19 被阅读0次

    零、类结构关系

    1.RACSubject::RACSignal::RACStream.

    2.最基础的东西:创建信号,发送信号、订阅信号

    RACSignal *aSignal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

        [subscriber sendNext:@"谁关心这个信号?"];//发送

        return nil;

    }];

    3.订阅者:

    [signal subscribeNext:^(id x) {

        NSLog(@"%@", x);//这里打印“谁关心这个信号”

    }];

    4.RACSubscriber protocol: sendCompleted,subscribeNext:completed:

    一、RAC宏与RACObserve宏的不同点和使用技巧

    1. RAC(object, property) = RACObserve(anotherObject, anotherProperty);

    2. anotherProperty属性类型要与property的一模一样, 否则在map出来转化类型,return给前面的property一致即可

    二、RAC在常见的一些控件、通知的使用,让代码变简洁;【"学会了什么是RACSignal"

    比如 [控件变量 rac_signalXxx] subscribeNex:^(){这里就是当控件的某个变量或状态发生改变时要执行的业务逻辑}];

    rac支持代理、通知、KVO等;

    三、学习RACStream(消息流)

    1.filter、Skip、map、startWith等等;

    2.因为RACSignal::RACStream,故直接就有流操作;

    五、学习RACSubject(用于代替代理)

    RACSubject *subject = [RACSubject subject];

    [subject subscribeNext:^(id x) {

        NSLog(@"订阅者1:%@", x);

    }];

    [subject sendNext:@"subject1"];

    [subject subscribeNext:^(id x) {

        NSLog(@"订阅者2:%@", x);

    }];

    [subject sendNext:@"subject2"];

    2017-09-28 11:32:40.028 demo[7131:42883] 订阅者1:subject1

    2017-09-28 11:32:40.029 demo[7131:42883] 订阅者1:subject2

    2017-09-28 11:32:40.029 demo[7131:42883] 订阅者2:subject2

    六、RACCommand与RACSubject的比较(主要用于按钮)

    >>主要用于多种状态,点击、点击中、点击后

    >>网络请求:开始、请求中、请求后;请求失败、请求成功;

    http://www.jianshu.com/p/b9d140b5763e

    七、RACScheduler

    [[RACScheduler mainThreadScheduler]afterDelay:5 schedule:^{

    NSLog(@"五秒后执行一次");

    }];

    八、RACDisposable

    1.可以为空,但如果需要提前终止的话,可以keep这个变量。

    相关文章

      网友评论

          本文标题:RAC学习笔记

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