0
多くの信号をマージしてRACTupleから結果を得る方法がわかりませんが、簡単な答えのようですが、それを見つけることはできません。私たちがexmapleのために持ってマージされた信号からRACTupleを取得する
:map
が間違っている
NSArray *a = @[@{@"k1":@"v1"},
@{@"k2":@"v2"},
@{@"k3":@"v3"},
@{@"k4":@"v4"},
@{@"k5":@"v5"},
@{@"k6":@"v6"},
@{@"k7":@"v7"}];
NSArray *b = @[@{@"kk1":@"vv1"},
@{@"kk2":@"vv2"},
@{@"kk3":@"vv3"},
@{@"kk4":@"vv4"},
@{@"kk5":@"vv5"},
@{@"kk6":@"vv6"},
@{@"kk7":@"vv7"}];
と
RACCommand *command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
RACSignal *s1 = [self adaptObjects:a];
RACSignal *s2 = [self adaptObjects:b];
return [[RACSignal merge:@[s1,s2]] map:^id(id value) {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendNext:value];
return nil;
}];
}];
}];
[[command execute:nil] subscribeNext:^(RACTuple *x) {
NSLog(@"%@",x);
}];
この演算子は、私がいることを知っているが、これは私が欲しいのNSLogでは例
- (RACSignal *)adaptObjects:(NSArray *)objects {
return [objects.rac_sequence.signal flattenMap:^RACStream *(id x) {
return [self adaptObject:x];
}];
}
- (RACSignal*)adaptObject:(NSDictionary*) x {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
// some operations with data here
[subscriber sendNext:x];
return nil;
}];
}
のためであります最初の2つの配列のタプル結果を表示する - s1、second - s2 Thx
はい、いい例です。私はRACSignalにオブジェクトを 'return:'メソッドでラップできるという事実を忘れてしまった。どうも –