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]);
}