为什么我的应用程序不会在XCode 8 beta(8S128d)中运行

时间:2016-06-15 00:19:45

标签: xcode xcode8 ios10

这是一个会影响许多应用的问题,可以在Xcode 8 beta(8S128d)中找到。这是第一个测试版,虽然它没有标记为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

这很重要!

1 个答案:

答案 0 :(得分: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。