3
我对我在NSUserdefaults中保留的特定键的值更改感兴趣。但是,我拥有的并不是为我工作。 observeValueForKeyPath不会被触发。观察值更改为NSUserDefaults键
更新:我想我已经发现了这个问题。而不是使用定义的常量,如果我使用一个字符串,那么它会被解雇。
[[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:kSomethingInteresting options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
}
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
NSLog(@"Defaults changed, %@.%@", object, keyPath);
if ((object == [NSUserDefaults standardUserDefaults]) && [keyPath isEqualToString:kSomethingInteresting]) {
NSLog(@"kSomethingInteresting changed in defaults");
}
}
不理想,但如果我先于addOberver符合:
NSString* keyToObserve = kSomethingInteresting;
和使用,在该行的addObserver随后的作品。似乎有点烦躁?
只是一个说明,观察iOS 6上的常量。 – 2013-07-17 20:55:44