无法保存到 iOS 7.0.2 上的 NSUserDefaults
Posted
技术标签:
【中文标题】无法保存到 iOS 7.0.2 上的 NSUserDefaults【英文标题】:can't save to NSUserDefaults on iOS 7.0.2 【发布时间】:2013-10-02 20:50:03 【问题描述】:在我的应用程序中,我使用 NSUserDefaults 并将我的 iPhone 更新到最新的 ios 7.0.2。从那时起,该应用程序不会保存我想要保存在 NSUserDefaults 中的数据。
我记得从 iOS 5 开始,您必须向用户征求许可,是这样吗?
以下代码,保存忘记密码状态,即“发送您的电子邮件”->“等待代码”->“成功”
用户插入他的电子邮件并收到一封带有代码的电子邮件,在插入代码后他可以设置他的新密码。 我的代码是:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *temp = [defaults valueForKey:FORM_STATUS];
我从来不需要同步。上述代码在 IOS v7.0.2 之前运行良好,并且该错误仅在真实设备上发生。不在模拟器或带有 IOS 7.0 的设备上。 昨天我用我的 iPhone 检查了它,晚上我更新了我的设备并再次检查。
如果有人记得 IOS 5,如果您没有请求使用照片的权限,您将看不到模态视图。我记得当时创建了一个使用用户照片库的应用程序,但它停止在真正更新的设备上运行(当时)。
【问题讨论】:
显示您的代码。改为加载默认值时会得到什么? 请求保存到NSUserDefaults
的权限?
您不需要在 NSUserDefaults AFAIK 中存储数据的权限。
我猜这又是一个“你必须打电话给- synchronize
”的问题。
-synchronize 应该是不必要的,除非在异常终止的情况下。请注意,“异常”包括调试器中的“停止”按钮,以及由于内存压力而终止。
【参考方案1】:
存储:
NSString * Authkey = @"Sivarwin";
NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
[storeData setObject:Authkey forKey:@"Key"];
NSLog(@"SYMBOL : %@",Authkey);
检索:
NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
NSString *loginString = [storeData valueForKey:@"Key"];
NSLog(@"%@ Saved String ",loginString);
【讨论】:
您的代码应该可以工作,所以我会将其标记为已回答。但我想问题出在 iOS 版本上(当时是测试版)以上是关于无法保存到 iOS 7.0.2 上的 NSUserDefaults的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序启用数据保护时,在 ios 中写入 nsuser 默认值时出现 CfPrefrences 错误