2010-06-08 56 views
2

我使用NSUserDefaults來存儲一些東西。NSUserDefaults - 需要重新加載?

它工作正常,但只有在我重新啓動應用程序後。

我使用: [prefs synchronize]; 我認爲它會立即保存數據,但首選項保持爲空。

如果您有任何想法或已經處理它,讓我知道。 感謝您的幫助。

Wallou

+1

請提供寫入NSUserDefaults的代碼。當你使用同步時,應該保存更改。如果它們爲空,則可能意味着null是寫入它們的值。 嘗試在調試器或NSLog中查找值,然後將其保留。還要確保在NSUserdefaults對象上使用正確的方法:setObject/setBool等。 – RickiG 2010-06-08 21:33:26

+0

RickiG的評論很好,我只是想問你是否正在使用NSUserDefaultsController,因爲這增加了一些其他方法讓人困惑。 – JWWalker 2010-06-09 06:07:50

+0

hey, 這裏是我的代碼: NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults]; \t \t //保存一個NSString \t [首選項的setObject:identField.text forKey:@ 「郵件」]; \t [prefs setObject:pwdField.text forKey:@「password」]; \t \t \t \t [prefs synchronize]; 這些值爲空,直到我重新啓動我的應用程序。然後他們有正確的價值。 – wallou 2010-06-09 07:00:28

回答

2

我終於設法解決了我的問題。我在兩個不同的地方做了同樣的事情(舊的代碼被遺忘了)。以下是我的代碼:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
// saving an NSString 
[prefs setObject:identField.text forKey:@"mail"]; 
[prefs setObject:pwdField.text forKey:@"password"]; 
mail=[prefs objectForKey:@"mail"]; 
pwd=[prefs objectForKey:@"password"]; 

//This is to synch prefs 
[prefs synchronize]; 
NSLog(@"pwd: %@, username:%@", mail, pwd); 
相關問題