iOS: NSUserDefaults issues
来源:互联网 发布:软件测试缺陷 编辑:程序博客网 时间:2024/05/08 03:15
NSUserDefaults用于存储一些app setting。当你关闭app之后再打开后,之前存储的setting依然可以从NSUserDefaults里读取。注意:密码最好不要存储在NSUserDefaults里,要存储也必须用AES/DES加密存储,更安全的方法是 https://github.com/ldandersen/scifihifi-iphone
把密码存储在NSUserDefault or plist里的后果: http://www.shushao.com/news/info/item/203510-ios
example 1: 读取NSUserDefaults里的"color" setting
[[NSUserDefaults standardUserDefaults] stringForKey:@"color"];
example 2: 写入NSUserDefaults里的"color" setting为"red"
[[NSUserDefaults standardUserDefaults] setObject:@"red" forKey:@"color"];
另外NSUserDefaults还提供了一个registerDefaults方法,通常在appDelegate的didFinishLaunchingWithOptions里调用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys: @"blue", @"color",nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues]; return YES;}
1 当第一次run上面的app时,"color"="blue"会写入NSUserDefaults里
2 然后你的app调用了
[[NSUserDefaults standardUserDefaults] setObject:@"red" forKey:@"color"];
这时NSUserDefaults里"color"="red"
3. exit app and restart it,registerDefaults方法还是会被调用,但它check到"color" key已经存在,就不会把它写入NSUserDefaults中
这时NSUserDefaults里"color"="red"
4. 修改registerDefaults方法变成
NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys: @"black", @"color",nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
然后重新run app,之后NSUserDefaults里依然"color"="red"
5. 修改registerDefaults方法变成
NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys: @"black", @"color",@"tomson", @"username",nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
然后重新run app,之后NSUserDefaults里依然"color"="red",不过多了a pair of key-value: username=tomson
注意:
* If you terminate your app by pressing "Stop" in Xcode (in the Simulator or on the device), your User Defaults might get saved
* 我没试过NSUserDefaults在exit app之后被保存,有人说碰到,并给出代码调用""的解决方案
ref links:
http://stackoverflow.com/questions/6033385/nsuserdefaults-not-being-saved-in-simulator
http://stackoverflow.com/questions/2622754/why-is-nsuserdefaults-not-saving-my-values
- iOS: NSUserDefaults issues
- iOS: NSUserDefaults issues
- iOS issues
- iOS:NSUserDefaults
- iOS:NSUserDefaults
- iOS NSUserDefaults
- ios-NSUserDefaults
- iOS-NSUserDefaults
- iOS NSUserDefaults
- iOS NSUserDefaults
- iOS NSUserdefaults
- iOS SDK: 使用NSUserDefaults
- iOS SDK: 使用NSUserDefaults
- iOS NSUserDefaults使用方法
- ios开发之NSUserDefaults
- iOS SDK: 使用NSUserDefaults
- IOS-NSUserDefaults的翻译
- iOS SDK: 使用NSUserDefaults
- iframe的简单使用
- 针对该架构进行的规范XML验证失败。以下XML文档行中存在错误:|
- 11.2.0.1 Grid Infrastructure Installation Failed at Second Nodes While Running root.sh
- C# EXCEL 分组 Range.Rows.Group()
- PHP学习之memcache集群相关
- iOS: NSUserDefaults issues
- 将136.23.12.64/26划分成四个相同的子网,每个子网内有多少可用IP?
- 百叶窗特效
- 什么是lib文件,lib和dll的关系如何
- iphone里读取gb2312(中文)编码文件或者二进制流。
- java生成GUID与UUID
- 几条C#的Excel编程技巧
- org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法
- 卡尔曼滤波