1:某一个类.h文件
新建一个Model类 里面有待监听selectArray
/**
* 待监听数组模型类*/
@interface SelectArrayModel : NSObject
///勾选保存数组
@property (nonatomic,strong) NSMutableArray *selectArray;
@end
2:某一个类.m文件实现
///KVO待监听Model
@property (strong, nonatomic) SelectArrayModel * selectArrayModel;
/**
SelectArrayModel
*/
@implementation SelectArrayModel
-(NSMutableArray *)selectArray{
if(!_selectArray){
_selectArray = [NSMutableArray array];
}
return _selectArray;
}
@end
3:添加监听
//懒加载_selectArrayModel
- (SelectArrayModel *)selectArrayModel
{
if (!_selectArrayModel) {
_selectArrayModel = [[SelectArrayModel alloc] init];
[_selectArrayModel addObserver:self forKeyPath:@"selectArray" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
}
return _selectArrayModel;
}
4:调用
[self.selectArrayModel mutableArrayValueForKeyPath:@"selectArray"]
5:监听
/**
* 重写监听方法
*/
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"selectArray"]) {
SCDebugLog(@"%@",self.selectArrayModel.selectArray);
if(self.selectArrayModel.selectArray.count<2){
self.saveBtn.alpha = .4;
self.saveBtn.enabled = NO;
}else{
self.saveBtn.alpha = 1;
self.saveBtn.enabled = YES;
}
}
}
6:移除
/**
* 移除监听
*/
-(void)dealloc{
[self.selectArrayModel removeObserver:self forKeyPath:@"selectArray"];
}