美文网首页
RAC笔记(2)-- RACCommand

RAC笔记(2)-- RACCommand

作者: 喵喵粉 | 来源:发表于2020-04-24 10:06 被阅读0次
  1. 创建RACCommand
_loginCmd = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
     return [self loginAction];
}];

initWithSignalBlock保存了:
_signalBlock
_executionSignals
_errors
_executing
block

initWithSignalBlock:
  1. 订阅信号
  • executionSignals:这个是signal of signals(信号的信号),意思是信号发出的数据是信号,不是普通的类型
[_loginCmd.executionSignals.switchToLatest subscribeNext:^(id  _Nullable x) {
    NSLog(@"switchToLatest: %@", x);
}];
  • executing:监听当前命令是否正在执行
[[_loginCmd.executing skip:1] subscribeNext:^(NSNumber * _Nullable x) {
    //NSLog(@"executing: %@", x);
    
    if ([x boolValue]) {
        NSLog(@"executing ing");
    } else {
        NSLog(@"executing done");
    }
}];
  • errors:订阅发送的error信号
///在对command进行错误处理的时候,不使用subscribeError:对command的executionSignals进行错误的订阅,executionSignals这个信号是不会发送error事件的,当command包裹的信号发送error事件时,用到command的一个属性:errors,可以对错误进行订阅:
[_loginCmd.errors subscribeNext:^(NSError * _Nullable x) {
    NSLog(@"err: %@", x.userInfo.allValues.lastObject);
}];
  • 订阅执行命令execute:的信号,在第3点列出
  1. command执行命令execute:
[_loginCmd execute:@"登录"];

execute:执行blocksignalBlock(),返回RACMulticastConnection信号

command.execute
  • 订阅执行命令execute:的信号
[[_loginCmd execute:@"登录"] subscribeNext:^(id  _Nullable x) {
    NSLog(@" %@", x);
} error:^(NSError * _Nullable error) {
    NSLog(@"err: %@", error);
} completed:^{
    NSLog(@"completed");
}];

相关文章

  • RAC笔记(2)-- RACCommand

    创建RACCommand initWithSignalBlock保存了:_signalBlock_executio...

  • RACCommand与RACSubject的比较

    看了这位哥们关于rac的文章,有所启发然后上代码: RACCommand 是什么 1. 定义 RACCommand...

  • RAC学习笔记1·

    RAC支持的UI控件 RACCommand RACCommand类用于表示事件的执行,一般来说是在UI上的某些动作...

  • iOS RAC - RACCommand

    文章系列《RACSignal 》《RACDisposable》《RACSubject、RACReplaySubje...

  • 06RAC--RACCommand

    RACCommand:RAC中用于处理事件的类,可以把事件如何处理,事件中的数据如何传递,包装到这个类中,他可以很...

  • [iOS][RAC]--RACCommand命令

    RACCommand作用: RAC中用于处理事件的类,可以把事件如何处理,事件中的数据如何传递,包装到这个类中,他...

  • (七)、iOS RAC - RACCommand

    RACCommand 是 RAC 中的最复杂的一个类之一,它也是一种广义上的信号,RAC 中信号其实是一种对象(或...

  • iOS开发RAC学习笔记(三)RACCommand

    github源代码地址 RACCommand RACCommand的普通使用 一般情况下,RACCommand主要...

  • iOS RAC学习之路2之RACCommand

    上一篇我们已经对RACSignal的大部分用法都概括了一遍,我们把它理解为一个信号,可以比较清晰的在脑海里想象出来...

  • RACCommand浅析

    问题 使用RACCommand去执行操作,造成方法执行延迟,出现launch之后,黑屏闪动的情况.原因:RAC内部...

网友评论

      本文标题:RAC笔记(2)-- RACCommand

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