iOS监听控制器数组变化

用KVC监听viewcontroller的数组变化,在控制器里面有一个可变数组属性

若是用KVO监听数组mArray

在viewdidload方法里面写

[self addObserver:self forKeyPath:@"mArray" options:NSKeyValueObservingOptionOld context:nil];


- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void *)context{

NSString *str = [self.mArray lastObject];

DLog(@"%@",str);

}

若只是这样写,数组添加删除元素都不会监听到数组的变化。

若是要监听数组的变化就要进一步完成系统为我们生成的方法,一个是insert方法,一个是remove方法

iOS监听控制器数组变化_第1张图片

同时给数组添加元素时不再是使用 addObject:方法,而是使用insertObject:(id)object inMArrayAtIndex:(NSUInteger)index方法,只有这样才会监听到数组的变化。

这样当mArray元素添加删除时,都会监听到数组的变化

最后不忘移除监听


你可能感兴趣的:(iOS监听控制器数组变化)