用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方法
同时给数组添加元素时不再是使用 addObject:方法,而是使用insertObject:(id)object inMArrayAtIndex:(NSUInteger)index方法,只有这样才会监听到数组的变化。
这样当mArray元素添加删除时,都会监听到数组的变化
最后不忘移除监听
网友评论