iOS

RAC 无法监听数组的变化

2017-07-21  本文已影响1043人  踏云小子

报错

代码如下,当给数组增加元素时,rac居然监听不到,shit,fuck!原来是NSMutableArray本来就是没有kvo,而rac就是基于kvo的,so,你懂的

NSMutableArray *array = @[@"a", @"b"].mutableCopy;
self.array = array;
[RACObserve(self, array) subscribeNext:^(id x) {
            
}];
        
[array addObject:@"c"];

方案

谷歌了下,大致有两种思路:

    KVOMutableArray* array = [KVOMutableArray new];
    [array addObject:@"hello"];
    [array addObject:@"world"];
    self.kvoArray = array;
    
    [[self.kvoArray changeSignal] subscribeNext:^(RACTuple *tuple) {
        if (tuple.count) {
            NSMutableArray *ourArray = [tuple objectAtIndex:0];//这里就是我们要监听的数组
        }
        NSLog(@"");
    }];

说一句,现在我们把self.kvoArray里的元素改变,也能监听得到

上一篇下一篇

猜你喜欢

热点阅读