-(void)_test2{ ///////////////////////////////////////Command 命令的用法 注意使用command.executionSignals去订阅时 一定要先订阅再excute RACCommand * command = [[RACCommand alloc] initWithSignalBlock:^RACSignal * _Nonnull(id _Nullable input) { NSLog(@"input = %@",input); // 就是execute后面的参数 return [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) { [subscriber sendNext:@"发布信息"]; return nil; }]; }]; //另一种接收信息的方法 (此方法必须在execute方法之前) [command.executionSignals subscribeNext:^(id _Nullable x) { NSLog(@"另一种接收信息的方法 %@",x); //x是信号 得再次订阅 [x subscribeNext:^(id _Nullable x) { NSLog(@"另一种接收信息的方法返回结果再次订阅 %@",x); }]; }]; RACSignal *commandSigal = [command execute:@"开始飞起来"]; [commandSigal subscribeNext:^(id _Nullable x) { NSLog(@"接收发布的信息%@",x); } error:^(NSError * _Nullable error) { } completed:^{ }]; //订阅commandSigal信号 NSLog(@"//////////////////////////////////////////////////////////////////////"); ///////////////////////////////////switchToLatest表示的是最新发送的信号 }