假设我有一个键为
是否有一种方法可以在修改该值时得到通知?
或者可以通过绑定来实现吗?(但是,在这种情况下,我希望我的对象能够收到更改的通知,以便我可以执行其他任务。)
我知道可以观察
@"MyPreference"
,对应的值存储在NSUserDefaults
中。是否有一种方法可以在修改该值时得到通知?
或者可以通过绑定来实现吗?(但是,在这种情况下,我希望我的对象能够收到更改的通知,以便我可以执行其他任务。)
我知道可以观察
NSUserDefaultsDidChangeNotification
,但这似乎是一种全面的方法,并且似乎没有机制可以获取修改的特定键值对。(请随意纠正。)
[NSUserDefaults standardUserDefaults]
上调用此方法,而无需在键路径前面添加 "values."。其他参数保持不变。 - Quinn Taylor[NSUserDefaults standardUserDefaults]
使其正常工作。 然而,字符串追加是不必要的,因为...forKeyPath:@"values.MyPreference"...
将可以工作。 另外,您需要实现- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
来捕获事件。 - TrevorLNSKeyValueObservingOptionNew
选项并非必需。您可以传递0
作为选项。 - FlovdisNSUserDefaultsController
)适用于Mac,但第二个解决方案不起作用。 - Ethan