【问题标题】:How to compare two NSArrays in ReactiveCocoa如何比较 ReactiveCocoa 中的两个 NSArray
【发布时间】:2017-08-28 07:32:45
【问题描述】:

我有一个存储的 NSArray。如何观察另一个 NSArray 的变化并与存储的比较? 它看起来像:

RACSignal *compareArraySignal = [[RACObserve(self, arr) ...];

谢谢。

【问题讨论】:

    标签: ios objective-c reactive-cocoa


    【解决方案1】:

    根据您实际想要比较这些数组的方式,您需要观察两个数组,组合它们的值,然后通过比较映射到结果。

    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]);
    }];
    

    在这个例子中,我只是比较平等,但你可以在地图块中做任何需要的事情

    【讨论】:

    • 这就是我需要的。实际上我会使用zip: 而不是combineLatest: 来比较两个数组中的每对元素。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    相关资源
    最近更新 更多