您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

2016-05-13 10:26 246 查看

关于使用KVO监听数组

一.

在第一次使用KVO监听数组的count的时候,我无论如何改变数组时,都无法进入到observeValueForKeyPath::这个方法,后来,当我百度后,才发现,kvo指针的变动,对于一些指针没有变动的属性是没办法监听到的.

比如当我们需要监听NSMutableArray的count属性时,直接增加或删除是无法监测到数组数量上的变化的.首先必须实现以下2条函数

//增加
- (void)insertObject:(id)object inDataSourceAtIndex:(NSUInteger)index{
[self.dataSource insertObject:object atIndex:index];
}
//移除
- (void)removeObjectFromDataSourceAtIndex:(NSUInteger)index{
[self.dataSource removeObjectAtIndex:index];
}
//还有其他方法看需求实现


然后,在执行增加或删除操作的时候使用mutableArrayValueForKey方法,以下是我在当前类中实现的属性

@property(nonatomic,strong) NSMutableArray *dataSource;

[[self mutableArrayValueForKey:@"dataSource"] addObject:@1]


这样 当数量变化时,也可以进行监测了,remove同理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: