美文网首页iOS
RAC 无法监听数组的变化

RAC 无法监听数组的变化

作者: 踏云小子 | 来源:发表于2017-07-21 15:54 被阅读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里的元素改变,也能监听得到

    • 手动加kvo,使用mutableArrayValueForKey

    相关文章

      网友评论

        本文标题:RAC 无法监听数组的变化

        本文链接:https://www.haomeiwen.com/subject/mcdekxtx.html