@interface ObjTest1 : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *path;
@end
@implementation ObjTest1
@end
@interface ObjTest2 : NSObject
@end
@implementation ObjTest2
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
{
NSLog(@"===== change %@",change);
}
@end
//测试,调用
ObjTest1 *obj1 = [ObjTest1 new];
ObjTest2 *obj2 = [ObjTest2 new];
obj1.name = @"aaa";
[obj1 addObserver:obj2 forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
obj1.name = @"bbb";
id info = obj1.observationInfo;
id info1 = [info valueForKey:@"_observances"];
id info2
判断observer 观察了哪些keyPath
最新推荐文章于 2023-04-27 20:00:38 发布
本文介绍了如何利用私有字段来判断Observer观察者所观察的keyPath,通过测试得出结论,可以用来确定某个keyPath是否被添加为观察目标,并且在移除观察者之前进行检查。
摘要由CSDN通过智能技术生成