我正在使用設置包來配置我的應用程序。作爲一種副作用,在iOS設置的應用程序外部可以使用相同的一組設置。這很棒。但是有一個小問題 - 我確實需要對這些變化做出反應。例如,我有一個用戶正在使用的名稱被別人識別,如果它更改,則必須發生服務器調用。如何處理?Settings.bundle:應用程序應該如何識別值在應用程序之外被更改的事實?
編輯:放輕鬆,傢伙。我從來沒有這樣做過,很難閱讀所有可用的指導方針。 Settings.bundle不是一個明顯的事情來處理。無論如何,請隨意投下問題,但至少需要一分鐘時間,並在通過之前閱讀所有表揚。
嘗試了幾種建議的方式,即使用通知,並在應用程序變爲活動狀態時更直接地處理默認值。第二種方法效果更好,因爲它只在我期望的時候執行,而不是每次在應用程序中更改/添加/刪除任何配置設置。
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSString *nameOld = [[NSUserDefaults standardUserDefaults] stringForKey:kNameKey];
[[NSUserDefaults standardUserDefaults] synchronize];
NSString *nameNew = [[NSUserDefaults standardUserDefaults] stringForKey:kNameKey];
檢查值。與其他地方的保存版本進行比較。 – Wain
不知道誰downvoted ...我完全知道如何添加觀察員。這是一個明確的技術。我想知道從iOS設置屏幕回來。我的事情@Duncan Groenewald給了我一個主意。 – Schultz9999
@MartinR我不知道爲什麼這是一個dup。這個問題沒有什麼能解決我的問題。這裏也沒有說什麼https://developer.apple.com/library/ios/DOCUMENTATION/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html。所以請詳細說明。 – Schultz9999