我正在尝试执行以下任务
[[NSUserDefaults standardUserDefaults] setObject:@"Dry" forKey:@"vesselType_preference"];
[[NSUserDefaults standardUserDefaults] synchronize];
我的" vesselType_preference"是多值属性,但它没有受到影响。请帮助这适用于其他类型的属性,但不适用于多值类型。
由于
答案 0 :(得分:1)
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:@"vesselType_preference"])
{
[defaults setObject:@"Dry" forKey:@"vesselType_preference"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
这应该有用。
答案 1 :(得分:0)
NSUserDefaults只能处理NSDictionary,NSData,NSArray,NSString和BOOL的对象。 (可能还有另外一个,不确定)如果你需要存储一个像数组或字典这样的多值对象,我会先将你的设置存储在那里,然后将其保存为默认值。
您的代码可以很好地将信息存储到用户默认值。只需确保在保存之前指定了对象类型。 (id)将无效......或者无法正常工作。