为什么stringForKey返回null?
问题描述:
在我的viewDidLoad方法我想读取用户的默认值。但是为什么stringForKey返回null?
NSLog(@"%@", [prefs stringForKey:@"gateway_picker"]);
打印(null)
。为什么?
gateway_picker
默认值设置为。
答
因为它被设置为数字1,作为整数,浮点数或布尔值,而不像NSControl,NSUserDefaults不会尝试将值转换为您请求的类型。
改为使用objectForKey:
。这将返回对象,无论它是否是字符串或其他。
如果您然后想要数字解释它,请询问对象的其integerValue
,floatValue
或boolValue
。无论对象是NSString还是任何类型的NSNumber,这都可以工作。 (如果是数据,日期,数组或字典,这将引发异常,您可能需要检测这些值并在此情况下替换默认值。)
如果您特别想要字符串,请检查是否该对象是一个数字,并询问它是否为stringValue
。 (同样,您可能也想要处理接收数据,日期,数组或字典)。
Hm this returns(null)too。 – 2011-05-11 20:31:36