如何在 ReactiveCocoa 中比较两个 NSArrays
How to compare two NSArrays in ReactiveCocoa
我有一个存储的 NSArray。如何观察另一个 NSArray 的变化并与存储的进行比较?
看起来像:
RACSignal *compareArraySignal = [[RACObserve(self, arr) ...];
谢谢。
根据您实际想要比较这些数组的方式,您需要观察两个数组,组合它们的值,然后通过比较映射到结果。
RACSignal *compareArraySignal = [[RACSignal combineLatest:@[
RACObserve(self, array1),
RACObserve(self, array2)]]
map:^id _Nullable(RACTuple * _Nullable value) {
RACTupleUnpack(NSArray *array1, NSArray *array2) = value;
return @([array1 isEqualToArray:array2]);
}];
在这个例子中,我只是比较平等,但你可以在地图块中做任何需要的事情
我有一个存储的 NSArray。如何观察另一个 NSArray 的变化并与存储的进行比较? 看起来像:
RACSignal *compareArraySignal = [[RACObserve(self, arr) ...];
谢谢。
根据您实际想要比较这些数组的方式,您需要观察两个数组,组合它们的值,然后通过比较映射到结果。
RACSignal *compareArraySignal = [[RACSignal combineLatest:@[
RACObserve(self, array1),
RACObserve(self, array2)]]
map:^id _Nullable(RACTuple * _Nullable value) {
RACTupleUnpack(NSArray *array1, NSArray *array2) = value;
return @([array1 isEqualToArray:array2]);
}];
在这个例子中,我只是比较平等,但你可以在地图块中做任何需要的事情