在我的 viewDidLoad 方法中我想读取用户默认值。但
NSLog(@"%@", [prefs stringForKey:@"gateway_picker"]);
打印(null)
。为什么呢?
gateway_picker
默认值设置为 1 。
答案 0 :(得分:3)
因为它设置为数字1,可以是整数,浮点数或布尔值,并且与NSControl不同,NSUserDefaults不会尝试将值转换为您请求的类型。
请改用objectForKey:
。这将返回对象,无论它是字符串还是其他任何东西。
如果您想以数字方式解释它,请向对象询问integerValue
,floatValue
或boolValue
。无论对象是NSString还是任何类型的NSNumber,这都将起作用。 (如果是数据,日期,数组或字典,这将导致异常。在这种情况下,您可能希望检测此类值并替换默认值。)
如果您特别想要一个字符串,请检测该对象是否为数字并询问其stringValue
(如果是)。 (同样,您可能还希望处理接收数据,日期,数组或字典。)