我的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是设置包中的切换开关,我似乎根本无法设置这些。它们似乎总是设置为否。
有谁知道我做错了什么?我应该使用不同的方法来设置切换开关的默认值吗?
提前致谢
答案 0 :(得分:2)
isConnectedToDemoString
和isConnectedToInternal
的类型。除非这些是NSNumber
,否则您应该使用setBool:forKey:
。
此外,虽然setValue:forKey:
适用于将对象类型存储到用户默认值,但如果您使用NSUserDefaults
- 本机setObject:forKey:
方法,则代码会更清晰。