6的Xcode NSUserDefaults的不工作

问题描述:

的Xcode 6NSUserDefaults设备模拟器(iPhone 5,iPhone 6等,模拟器)不起作用。6的Xcode NSUserDefaults的不工作

如果您在真实设备上测试,它的工作原理非常完美。有人知道如何将这些信息发送给Apple?我试图联系Apple,但我没有收到答复。

我无法测试真正的iPhone6或iPhone6 Plus,因为在我的国家尚不可用。

我的代码(就是一个例子),其在设备上运行完美:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *appTheme = [defaults objectForKey:@"theme_preference"]; 

if ([appTheme isEqualToString:@"color0"]) { 

} else { 

} 

也许,我没有表达清楚我自己。

用户在“iPhone o iPad设置”中必须更改应用程序的设置参数。

设置由“Settings.bundle”的“Root.plist”实现。

也就是说,我尝试测试用户更改应用程序的参数。但在源代码中,我没有看到这些变化。 我一直跟设备模拟器(Xcode6)

App Settings

+0

运行哪个版本的iOS? – *foe 2014-09-19 09:49:04

+2

我看到'NSUserDefaults'类似的问题。我认为它只是在当前版本中被打破:版本6.0.1(6A317)。也许下一个版本会解决这个问题?但愿如此。 – siannopollo 2014-09-19 15:36:59

+0

我的版本的模拟器是v8.0(550.1),它不能正常工作 - 如上所述。 – 2014-09-24 13:04:32

今天我终于解决了这个问题。我安装了Xcode(版本6.1)的最新更新,然后我重置了模拟器。

然后我访问了我的设置应用程序。直到您打开应用程序的设置,设置不会被复制到模拟器(或真实设备)

至少一次访问您的应用程序设置是至关重要的。

尝试保存的数据是这样的:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:@"color0" forKey:@"theme_preference"]; 
[defaults synchronize]; 

再后来称之为:

NSString *appTheme = [defaults objectForKey:@"theme_preference"]; 
if ([appTheme isEqualToString:@"color0"]) { 

} else { 

} 
+0

我尝试测试用户更改应用程序的参数。但在源代码中,我没有看到这些变化。我总是谈论设备模拟器(Xcode6) – Markus 2014-09-19 14:13:56

+0

这是不正确的。如果你的默认参数是一个整数(例如),你必须调用它:[defaults integerForKey:@“strokeSize_preference”];这是不正确的:objectForKey – Markus 2014-10-28 14:40:44

这是一个现在与xCode6和ios8共同的问题。

我发现的是当你遇到这个NSUserDefaults问题时,重置模拟器的内容和设置。

当我从模拟器中删除应用程序时,userdefaults的值未被清除。

然后我重置我的模拟器,它为我工作得很好。

因此,截至目前为止,直到苹果给出了一个解决这个问题,在模拟器上测试的最好方法是重置模拟器,每当你想删除应用程序。

它为我工作。希望它也能帮助别人。

这是一个iOS模拟器的bug,你应该去iOS模拟器>重置内容和设置来重置设备。

+0

在我的情况:没有工作。问题依然存在。 – Markus 2014-10-28 14:41:37

转到菜单中的iOS模拟器,然后单击重置内容设置,现在您的问题应该解决。