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影像标注


下一篇:Runtime-iOS运行时基础篇