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