我的iPhone应用程序中有一个设置包,包含以下PList:
Type: PSMultiValueSpecifier
Title: Within (Kilometres)
DefaultValue: Number: 1
Titles: Array:
Item 1: Number: 1
Item 2: Number: 2
Values: Array:
Item 1: Number: 1
Item 2: Number: 2
Key: String: km
然后在我的代码中我有:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger choiceOne = [defaults integerForKey:@"km"];
choiceOne
始终为0.
我做错了什么?
由于
答案 0 :(得分:0)
您是否尝试过实际启动“设置”应用并选择“内部”设置,然后返回应用进行检查?该应用程序不会自动采用默认值。
您可以使用
检查密钥是否确实存在NSNumber* obj = [defaults objectForKey:@"km"];
NSInteger choiceOne;
if (obj == nil) {
choiceOne = 1;
[defaults setInteger:choiceOne forKey:@"km"];
} else {
// check whether obj really implements -integerValue if needed.
choiceOne = [obj integerValue];
}
或者,如果它超出预期范围,则将其设置为1.