美文网首页
使用KVO观察数组的变化

使用KVO观察数组的变化

作者: InitWithYou | 来源:发表于2016-09-22 10:45 被阅读737次
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简析&自定义

    1.KVO的简单使用 三部曲 自动开关 KVO观察数组 数组的观察比较特殊,需要用到KVC的方式进行改变 原理 1...

  • 如何用KVO观察对象的子对象的属性变化

    如何用KVO观察对象的子对象的属性变化?KVO观察多级对象属性变化

  • 使用RAC/KVO监听数组的变化

    iOS默认不支持KVO的形式来监听数组的变化,数组改变的时候,只是数组里面的值变化,但数组的地址没有变化,KVO监...

  • KVO如何才能直接监听到数组的变化

    转自关于使用KVO监听数组的问题 首先,数组不能直接使用KVO使用监听。当我们想要使用KVO监听数组的状态时改变然...

  • iOS -KVO

    KVO-键值观察 KVC:对象取值或者设置值。KVO:监听对象值的变化。 响应式编程的一种。KVO的使用非常简单,...

  • KVO

    KVO 简介 KVO 键值观察机制,就是观察指定对象的指定属性变化情况。 KVO 键值观察 依赖于 KVC 健值编...

  • RxSwift:KVO监听对象属性

    在观察某个属性是否变化的时候,采用 KVO 的方式更为简单直接一些。 关于 Swift 的 KVO 使用方法,可以...

  • KVO的原理 && KVC

    KVO kvo 即键值观察 观察一个对象的属性的变化,并在改变时接收到事件kvo是如何监听属性变化的呢 首先要注册...

  • KVO & KVC

    KVO(键值观察者) 什么是KVO,KVO的实现机制是什么? KVO就是键值观察者,是观察者设计模式的实现 使用i...

网友评论

      本文标题:使用KVO观察数组的变化

      本文链接:https://www.haomeiwen.com/subject/iulzettx.html