为什么我的应用无法在 Xcode 8 测试版 (8S128d) 中运行



这是一个会影响许多应用程序的问题,可以在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

这很重要!

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

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

发行说明:

WWDC种子:运行多个iOS模拟器可能导致nsuserdefaults不起作用

运行iOS 8或9模拟器其次是iOS 10模拟器将导致NSUSERDEFAULTS停止在模拟器中工作。可以通过重新启动主机Mac。

最新更新