1. 应用场景
UITableView列表,当数组listAry的count为0的时候,需要显示一个空白页。
2. 实现方法简介
给listAry添加kvo监测,但是数组默认不支持kvo,因为普通方式监听的对象的地址的变化,而数组地址不变,而是里面的值发生了变化。。
3.解决方法:
给数组注册通知:
[self addObserver:self forKeyPath:@"listsAry"
options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld
context:nil];
触发通知:
[[self mutableArrayValueForKey:@"listsAry"] addObject:model];
通知回调:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary<NSString *,id> *)change
context:(void *)context {
if (![keyPath isEqualToString:@"listsAry"]) return;
//做判断是否显示空白页
if ([self.listsAry count] == 0) {
//显示空白页
}else {
//不显示空白页
}
//列表刷新
[self.deviceTB reloadData];
NSLog(@"设备个数 = %lu",(unsigned long)[self.listsAry count]);
}