gpt4 book ai didi

iphone - 观察 NSUserDefaults 键的值更改

转载 作者:行者123 更新时间:2023-12-03 20:17:33 29 4
gpt4 key购买 nike

我对保存在 NSUserdefaults 中的特定键的值变化感兴趣。然而,我所拥有的并不适合我。 observeValueForKeyPath 不会被触发。

更新:我想我已经发现了这个问题。如果我使用字符串,而不是使用定义的常量,那么它就会被触发。

[[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 行中使用它,然后就可以了。看起来有点繁琐?

最佳答案

因此,我将在本实例以及需要在用户默认值中观察某些内容的所有实例中放弃使用定义的常量。真遗憾,因为我喜欢在整个过程中使用它们作为键名。

关于iphone - 观察 NSUserDefaults 键的值更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3633973/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com