KISObserver 是一种简化使用 键值观察 (KVO) 模式 的方法。
您可以以 块、选择器 和常规 API 的方式观察对象的 keypath。此外,当观察者被释放时,它会自动删除观察。
使用块和默认选项的观察
[self observeObject:ob forKeyPaths:@"property" withBlock:^(KISNotification *notification) {
NSLog(@"New value:\t%@", notification.newValue);
NSLog(@"Old value:\t%@", notification.oldValue);
}];
使用在选择器上的一对多关系的观察
NSKeyValueObservingOptions opt = NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld;
[self observeObject:ob forKeyPaths:@"arr" options:opt withSelector:@selector(onChangeWithNotification:)];
// ...
- (void)onChangeWithNotification:(KISNotification *)notification
{
NSLog(@"isSetting:\t%hhd", notification.isSetting);
NSLog(@"Insertions:\t%@", notification.insertionIndexSet);
NSLog(@"Removals:\t%@", notification.removalIndexSet);
NSLog(@"Replacements:\t%@", notification.replacementIndexSet);
}
同时观察多个 keypath
[self observeObject:ob forKeyPaths:@"prop1|prop2" withBlock:^(KISNotification *notification) {
NSLog(@"KeyPath:\t%@", notification.keyPath);
NSLog(@"New value:\t%@", notification.newValue);
NSLog(@"Old value:\t%@", notification.oldValue);
}];
您的 dealloc
- (void)dealloc
{
// Nothing to do. :-)
}
使用 CocoaPods!
CocoaPods 是 Objective-C 的依赖关系管理器,可以自动化并简化在项目中使用第三方库的过程。
将项目添加到 Podfile 中
pod 'KISObserver', '~> 1.0.x'
更新您的安装
pod install
在将使用 KISObserver 的文件中导入 KISObserver
#import <KISObserver/KISObserver.h>
KISObserver 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。