pan*_*kaj 52 iphone nsuserdefaults
嗨,我想用来NSUserDefaults保存数据库中的一些默认值.我能够保存NSUserDefaults(甚至签入NSLog)中的值.现在,我需要重新启动应用程序时app delegate中的值.但是我没有得到任何东西NSUserDefaults.以下是我班上的代码,我将值保存在NSUserDefaults:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:appDel.dictProfile forKey:@"dict"];
NSLog(@"%@",[prefs valueForKey:@"dict"]);
Run Code Online (Sandbox Code Playgroud)
以下是来自App Delegagte的代码:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSLog(@"%@",[prefs valueForKey:@"dict"]);
Run Code Online (Sandbox Code Playgroud)
上面的代码总是返回null.有人可以帮帮我吗?
Nic*_*rge 204
如果您通过按主页按钮(在模拟器或设备上)终止您的应用程序,您的NSUserDefaults保存将被终止.
如果您通过在Xcode中按"停止"(在模拟器或设备上)终止您的应用程序,您NSUserDefaults 可能会得到保存,但他们很可能不会.NSUserDefaults定期保留任何更改,如果您在持久化之前终止该过程,它们将会消失.您可以通过调用强制保存:
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
在iOS4中(这个答案最初是在iOS3是公开发布时编写的),NSUserDefaults按下主页按钮时可能无法保存.手动调用[[NSUserDefaults standardUserDefaults] synchronize]中applicationDidEnterBackground:应该确保你NSUserDefaults正确保存(这确实应该IMO内置的行为).
Kan*_*sad 11
这段代码对我来说很好.
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"Prefs"];
[standardUserDefaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38446 次 |
| 最近记录: |