model类为: 将监听的数组封装到model里,不能监听UIViewController里面的数组
注意!!!!!!不能这样[_model.modelArray addObject]方法,需要这样调用
[[_model mutableArrayValueForKey:@"modelArray"] addObject:str];
第一步:新建一个model(NSObject) ,内部设置一个需要观察的数组属性。
第二步:在VC中初始化Model---> self.dataSourceModel = [[y_dataSourceModelalloc] init];
第三步:添加观察者KVO
/**
* KVO 观察model中属性--- 数据源
*/
[self.dataSourceModel addObserver:self forKeyPath:@"dataSource"options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
第四步:实现观察的方法
#pragma mark -- KVO
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
{
if ([keyPath isEqualToString:@"dataSource"]) {
......
}
}
第五步:释放观察者
-(void)dealloc
{
if (self.dataSourceModel != nil) {
[self.dataSourceModel removeObserver:self forKeyPath:@"dataSource"];
}
}
使用KVO观察数组的变化
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 成长记录-连载(三十六) ——我的第一篇五千字长文,说了什么,你一定想不到 并不是不想每天写公众号,而是之前思考怎...
- iOS默认不支持KVO的形式来监听数组的变化,数组改变的时候,只是数组里面的值变化,但数组的地址没有变化,KVO监...
- 一丶如题: 使用类别(category)向一个已存在的类添加一个属性,是否能用kvo观察 二丶实验 1.正常情况:...