OC + RAC Command 命令的用法

Posted liuw-flexi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC + RAC Command 命令的用法相关的知识,希望对你有一定的参考价值。

-(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表示的是最新发送的信号
    
    
}

 

以上是关于OC + RAC Command 命令的用法的主要内容,如果未能解决你的问题,请参考以下文章

OC + RAC RACSignal 基本使用

OC + RAC RACMulticastConnection

OC+RAC 核心方法bind

OC + RAC 信号中的信号

OC + RAC RACSubject和RACSignal的区别

OC + RAC combineLatest和merg