iOS 10,NSUserDefaults不起作用

ant*_*nio 18 objective-c nsuserdefaults ios ios10 xcode8

我尝试写入/读取值[NSUserDefaults standardUserDefaults],但似乎不起作用.我的代码是:

[[NSUserDefaults standardUserDefaults] setObject:@"sampleString" forKey:@"sampleKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSString *defaultsValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"sampleKey"];
return defaultsValue;
Run Code Online (Sandbox Code Playgroud)

nil对于Xcode 8.0 beta和iPhone 6s(10.0)模拟器,此代码返回.然而,它返回sampleStringXcode 8.0 beta和iPhone 6s(9.1)模拟器

我正在用新系统测试我的应用程序.难道我做错了什么?或者有解决方法吗?或者它只是一个"测试版"问题?

小智 25

我刚遇到同样的问题.NSUserDefaults首次运行iOS8或9模拟器,然后运行iOS10模拟器时,似乎存在问题.重启mac解决了我的问题.

  • 根据Apple(https://developer.apple.com/library/prerelease/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/index.html)WWDC Seed:运行多个iOS模拟器可能导致NSUserDefaults无法正常运行iOS 8或9模拟器后跟iOS 10模拟器将导致NSUserDefaults停止在模拟器中工作.这可以通过重新启动主机Mac来解决. (3认同)
  • 证实.关闭并重新打开模拟器不起作用,但重新启动为我修复了它. (2认同)

JAL*_*JAL 5

这是Xcode 8 Beta 1附带的iOS模拟器的一个错误.它已在Beta 2中修复:

已在Xcode 8 beta 2 - IDE中得到解决

模拟器

  • 无论您是否先前已启动iOS 8或iOS 9模拟器,NSUserDefaults在iOS 10 Simulator中都能正常运行.(25974372)

Xcode 8 Beta 2发行说明

更新到Xcode 8 Beta 2,以避免每次都重新启动主机Mac.