iOS如何为NSMutableArray添加KVO

转自:https://www.jianshu.com/p/f9fa928173ae

首先,数组不能直接使用KVO使用监听。当我们想要使用KVO监听数组的状态时改变然后尽心操作时,我们需要进行一下几部。

1.KVO不能监听UIViewController中的数组。我们需要先创建一个模型,将数组添加值模型中。

@interface SelectedsArr : NSObject

@property (nonatomic, strong) NSMutableArray *selecteds;///<选中的选项集合

@end

2.建立观察者以及观察者对象

[self.selectedsArr addObserver:self forKeyPath:@"selecteds" options:NSKeyValueObservingOptionNew context:nil];

3.处理Key的变化

这里,很重要,当向模型中的可变数组添加新成员时,不能直接用[self.selectedsArr.selecteds addObject:]方法。而使用该用下面的方法

[[self.selectedsArr mutableArrayValueForKey:@"selecteds"] addObject:]];

4.在下面的方法添加监听到变化后要执行的语句

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void *)context{

}

5.移除监听

[self removeObserver:self forKeyPath:@"selecteds"];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值