比方說,我有一個鍵@「MyPreference」,通過NSUserDefaults存儲相應的值。Cocoa - 關於NSUserDefaults值更改的通知?
當值被修改時是否有通知的方法?
或者可以通過綁定來完成嗎? (但是這種情況下,我不希望將值綁定到UI元素,而是希望我的對象得到更改通知,以便我可以執行其他任務。)
我知道NSUserDefaultsDidChangeNotification可以被觀察到,但是這個似乎是一種全有或全無的方法,並且似乎沒有一種機制可以獲得被修改的特定鍵 - 值對。 (隨時糾正)
您也可以致電`[NSUserDefaults的standardUserDefaults]`這個方法,而不必預先設置「值」。到關鍵路徑。其他參數保持不變。 – 2011-02-26 06:51:17
我不能像Quin建議使用`[NSUserDefaults standardUserDefaults]`一樣工作。然而,字符串附加不需要,因爲`... forKeyPath:@「values.MyPreference」...`將起作用。另外,你需要實現` - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;`實際捕獲事件。 – TrevorL 2011-06-16 19:30:55
嗨TrevorL ...即使stringByAppendingString:沒有必要,它有助於創建一個通用的方法 - (void)observePreference:(NSString *)pref {... [@「values。」 stringByAppendingString:pref] ... – Arvin 2012-01-15 02:05:16