2016-12-21 1 views
0

2つのネットワークコール(ケースの詳細とメッセージの詳細)を作成しています。両方のRACCommandsをマージして、両方が完了したらnextMethod()を呼び出します。 2つ以上のRACSignalを持っており、どのsendNext 1にそれらを結合したい場合はReactive Cocoaコマンドを2つマージするにはどうすればいいですか?

@weakify(self); 
[[self.loadCaseCommand.executionSignals switchToLatest] subscribeNext:^(MZACaseDetails *caseDetails) { 
    @strongify(self); 
    self.caseDetails = caseDetails; 
    self.watcherAccessLevel = caseDetails.watcherAccessLevel; 
    self.mutableCaseDetails = (MZAMutableCaseDetails *)[self.caseDetails mutableCopy]; 

    [self createViewModels]; 
    [(RACSubject *)self.contentDidChangeSignal sendNext:nil]; 
}]; 

[[self.loadMessagesCommand.executionSignals switchToLatest] subscribeNext:^(MZAMessage *messageDetails) { 
    @strongify(self); 
    self.messageDetails = messageDetails; 
}]; 
+1

のように見えますか? –

答えて

0

ここ

は、互いに独立して動作する2つのコールされたときに、すべての入力sendNext:とのsendError:とき1つの送信エラーはzip演算子を使用する必要があります。反応ココアで

http://reactivex.io/documentation/operators/zip.html

それはあなたが `RACCommand`だけではなく、` RACSignal`を使用しないのはなぜ

RACSignal* signal1 = [self.loadCaseCommand.executionSignals switchToLatest]; 
RACSignal* signal2 = [self.loadMessagesCommand.executionSignals switchToLatest]; 

[RACSignal zip:@[signal1, signal2]] subscribeNext:^(RACTuple *data) 
{ 
    RACTupleUnpack(MZACaseDetails *caseDetails, MZAMessage *messageDetails) = data; 
    //... 
} 
+0

素晴らしいありがとう! – kerbelda

関連する問題