Rez*_*our 93 nsuserdefaults ios ios-simulator xcode6 ios8
这可能听起来真的NOOB!我想检查是否是用户第二次进入我的应用程序,以便保持我正在使用的运行计数NSUserDefaults.我在我rootViewController的viewDidLoad方法中实现了以下代码:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSLog(@"hello %ld", (long)[userDefaults integerForKey:@"runCount"]);
if ([userDefaults integerForKey:@"runCount"] != 1) {
//not the 2nd run
[userDefaults setInteger:1 forKey:@"runCount"];
NSLog(@"not 2nd run");
} else {
//second run or more
NSLog(@"2nd run");
}
[userDefaults synchronize];
Run Code Online (Sandbox Code Playgroud)
一切正常,但问题是当我卸载(删除并重新安装)应用程序时,根据此处和此处的数据应该被清除,但它不是,并且在重新安装应用程序之前,以前的数据仍然显示.我在iOS模拟器上使用xCode6-beta运行我的应用程序,并在iOS 8上定位应用程序
and*_*ers 167
我认为这是由于iOS8 Beta模拟器中的一个错误.
预期的行为是,当删除应用程序时,该应用程序的NSUserDefaults也会被删除.
一个快速而烦人的解决方案是点击iOS模拟器 - >重置内容和设置.
带模拟器10的Xcode 9.2仍然存在这个问题.菜单选项现在是硬件..删除所有内容和设置
我提交了一个错误报告btw
Flu*_*imp 14
由于重置内容和设置是核选项,因此您可以考虑另外两个选项,直到解决iOS 8/Xcode 6 GM模拟器上的错误:
您可以手动删除NSUserDefaults存储的plist文件.这个目前位于在~/Library/Developer/CoreSimulator/Devices/*some_device_id*/Library/Preferences/com.yourcompany.yourapp.plist UUID目录名称中找到合适的模拟器有点繁琐.编辑:2014-10-28 20-34-52正确路径:
~/Library/Developer/CoreSimulator/Devices/*some_device_id*/data/Library/Preferences/com.yourcompany.yourapp.plist
您可以使用plistbuddy例如在该plist上执行"手术"(可能使用运行脚本构建阶段)
/usr/libexec/plistbuddy -c "Set :BSDidMoveSqliteDb 0" path_to_plist
对于任何面临同样问题的人。
如果您在同一组下有 1 个以上的应用程序并且所有应用程序都在使用应用程序组(在功能下打开),那么您必须从设备中删除所有应用程序,以便清除用户默认设置。
由于用户默认值是共享的,即使设备上有一个应用程序,它也不会被删除,因为该应用程序将使用用户默认值。
| 归档时间: |
|
| 查看次数: |
28198 次 |
| 最近记录: |