iOS KVO 数组
2020-09-23 本文已影响0人
小星星吃KFC
- KVO数组目前都是用array 包裹在一个model中
添加监听
[self.model addObserver:self forKeyPath:@"dataArray" options:NSKeyValueObservingOptionNew context:nil];
添加元素
[[self.model mutableArrayValueForKeyPath:@"dataArray"] addObject:anObject];
- 可以在当前类直接定义 NSMutableArray 属性
添加监听
[self addObserver:self forKeyPath:@"dataArray" options:NSKeyValueObservingOptionNew context:nil];
添加元素
[self.dataArray addObject:@"2"];
self.dataArray = [NSMutableArray arrayWithArray:self.dataArray];
forKeyPath:@"dataArray" ,这样的path 可以通过预编译 得出正确路径.
总结: 因为addObject NSMutableArray 地址不变化,无法KVO,所以重新创建NSMutableArray 地址就可以了,同理 在flutter中也是这个原理
https://www.jianshu.com/p/6b732e4fff5c