Suppose I have a signal of arrays arraySignal
, and a signal of objects addedObjectsSignal
.
I would like to define a third signal, modifiedArraySignal
, that takes the latest array from arraySignal
and adds to it the objects from addedObjectsSignal
sent since the latest array from arraySignal
.
Here's one way to do it:
RACSignal *modifiedArraySignal =
[[RACSignal
merge:@[arraySignal, addedObjectsSignal]]
scanWithStart:@[]
reduce:^(id running, id next) {
if ([next isKindOfClass:[NSArray class]])
return next;
else
return [running arrayByAddingObject:next];
}];
Is there another approach that doesn't use -[NSObject isKindOfClass:]
?