2013-10-03 75 views
3

我與NSUserDefaults存在此問題。它保存了默認值,直到我在後臺關閉應用程序,然後當我返回所有的默認值時,它們都消失了。每次在我的設備上建立新版本時,它們也都會消失。但是,再次,只要我不在後臺殺死它們,它們就在應用程序中。它在iOS 6中工作正常。NSUserDefaults未保存在iOS 7中

+3

你同步布爾值?技術上你不應該,但值得一試。 – WrightsCS

+0

是的,我是。這麼奇怪。 – HenryGale

+0

您是否在頭文件中定義了'NSUserDefaults * defaults';?或者使用'[NSUserDefaults standardDefaults]' – WrightsCS

回答

-2

確保幾件事情就像你一直在使用它之前宣佈userDefaults,如果你已經採取了,在你AppDelegate文件,然後在這裏是一個示例代碼,我是多麼節省值和正常工作,從而嘗試這樣

APP_DELEGATE.userDefaults = [NSUserDefaults standardUserDefaults]; 
[APP_DELEGATE.userDefaults setObject:@"unChecked" forKey:@"CheckMark"]; 
[APP_DELEGATE.userDefaults synchronize]; 

這裏APP_DELEGATE聲明這樣在我AppDelegate.h文件

#define APP_DELEGATE ((AppDelegate*)[[UIApplication sharedApplication] delegate]) 

希望它能幫助!

+2

將'NSUserDefaults'保存到應用程序委託的原因是什麼? –

0

把你的字符串(或任何其他按您的要求)值並保存在用戶的默認字符串

NSUserDefaults *userdefault=[NSUserDefaults standardUserDefaults];   
NSString *str=[NSString stringWithFormat:@"%@",[dicUser objectForKey:@"device_token"]]; 
[userdefault setObject:str forKey:@"YOURKEY"]; 
0

你既然不是你的代碼,所以我給例如這是完全的工作我在iOS 7上嘗試一下。希望也能爲你效勞。

爲了節省布爾值

bool flag = YES; 
[[NSUserDefaults standardUserDefaults] setBool:flag forKey:@"flag"]; 

對於檢索

bool flag = [[NSUserDefaults standardUserDefaults] boolForKey:@"flag"];