这是一个会影响许多应用的问题,可以在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
。
这很重要!
答案 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。