3

这是一个会影响许多应用程序的问题,可以在 Xcode 8 beta (8S128d) 中找到。这是第一个 beta,尽管它没有标记为 beta 1。

问题在于 NSUserDefaults;它不起作用。这是代码,也许把它放在application:didFinishLaunchingWithOptions:.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:@"hello world" forKey:@"TEST"];

[defaults synchronize];

NSString * oops = [[NSUserDefaults standardUserDefaults] valueForKey:@"TEST"];
NSLog(@"default = %@", oops);

在 Xcode 7 及更早版本中,此代码按预期工作:值为oops“hello world”。

在 Xcode 8 中, 的oops值为nil.

这很重要!

4

1 回答 1

8

找到答案:https ://forums.developer.apple.com/message/143155#143155

如果您使用过 Xcode 7 或更早版本,则需要在运行 iOS 10 模拟器之前重新启动 Mac。

从发行说明:

WWDC Seed:运行多个 iOS 模拟器会导致 NSUserDefaults 无法工作

运行 iOS 8 或 9 模拟器,然后运行 ​​iOS 10 模拟器将导致 NSUserDefaults 在模拟器中停止工作。这可以通过重新启动主机 Mac 来解决。

于 2016-06-15T00:31:57.150 回答