监听Array数组内容变化
来源:互联网 发布:软件著作权登记系统 编辑:程序博客网 时间:2024/06/06 02:52
- 定义一个类
@interface KVOMutableArray : NSObject@property (nonatomic, strong)NSMutableArray *array;@end@implementation KVOMutableArray- (instancetype)init { if (self = [super init]) { self.array = [NSMutableArray array]; } return self;}@end
- 在另一个类中,将KVOMutableArray的实例作为属性
@property (nonatomic, strong)KVOMutableArray *selectedData;// 添加观察者 [self addObserver:self forKeyPath:@"selectedData.array" options:NSKeyValueObservingOptionNew context:nil];// 实现代理方法- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { NSLog(@"%@", change);}// 移除观察者- (void)dealloc { [self removeObserver:self forKeyPath:@"selectedData.array"];}// 注意:在引用selectedData.array的时候,不能直接self.selectedData.array.不然监听不到变化.应该[self.selectedData mutableArrayValueForKey:@"array"]
另注:很多帖子说要重写以下方法,但是我测试没有重写这些方法也可以。不知道这些方法的作用到底是什么,如果有看到这篇帖子并且知道的请告知,谢谢!
- (NSUInteger)countOfArray {
return self.array.count;
}
- (id)objectInArrayAtIndex:(NSUInteger)index {
return [self.array objectAtIndex:index];
}
- (void)insertObject:(id)object inArrayAtIndex:(NSUInteger)index {
[self.array insertObject:object atIndex:index];
}
- (void)removeObjectFromArrayAtIndex:(NSUInteger)index {
[self.array removeObjectAtIndex:index];
}
- (void)replaceObjectInArrayAtIndex:(NSUInteger)index withObject:(id)object {
[self.array replaceObjectAtIndex:index withObject:object];
}
0 0
- 监听Array数组内容变化
- 监听EditText内容变化
- EditText 监听内容变化
- 监听DIV内容变化
- Android-监听EditText内容变化
- Android: EditText监听内容变化
- jQuery 监听文本框内容变化
- 监听div内容的变化
- 监听input内容实时变化
- jquery 监听div内容变化
- 监听Android中ContentProvider内容的变化
- Android数据库内容变化的监听
- Android数据库内容变化的监听
- jquery 如何监听div内容的变化
- 监听内容提供者ContentProvider的数据变化
- jquery 如何监听div内容的变化
- android 使用contentobserver监听数据库内容变化
- JQuery如何监听DIV内容变化
- 为SharePoint 显示 DataZen 创建AD FS 连接
- 得到APP版本
- 邢台自闭症哪家看的好
- Android Studio
- MLBase:Spark生态圈里的分布式机器学习系统
- 监听Array数组内容变化
- 二元论的终结
- Struts2配置详解_配置Action之通配符映射
- JavaScript-对事件作出反应\改变 HTML 内容\改变 HTML 样式\写入HTML输出
- IOS开发入门初体验
- 深度学习研究理解:Very Deep Convolutional Networks for Large-Scale Image Recognition
- 栈_STACK的实现
- 关于苹果证书
- 人脸识别