无法设置NSUserDefault ToggleSwitch值

时间:2011-03-22 21:51:23

标签: iphone objective-c ipad nsuserdefaults settings.bundle

我的IPad应用程序中有一个表单,允许用户配置应用程序设置(他们也可以从IPad设置应用程序更改这些设置)。我有以下代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:externalAddress forKey:@"firstString_preference"];
[defaults setValue:internalAddress forKey:@"secondString_perference"];
[defaults setValue:isConnectedToDemoString forKey:@"firstToggle_preference"];
[defaults setValue:isConnectedToInternal forKey:@"secondToggle_preference"];
[defaults synchronize];

firstString_preference和secondString_perference是设置包中的Textfields,它们可以毫无问题地保存到设置中。我的问题是firstToggle_preference和secondToggle_preference是设置包中的切换开关,我似乎根本无法设置这些。它们似乎总是设置为否。

有谁知道我做错了什么?我应该使用不同的方法来设置切换开关的默认值吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

isConnectedToDemoStringisConnectedToInternal的类型。除非这些是NSNumber,否则您应该使用setBool:forKey:

此外,虽然setValue:forKey:适用于将对象类型存储到用户默认值,但如果您使用NSUserDefaults - 本机setObject:forKey:方法,则代码会更清晰。