1

我正在尝试执行以下任务

[[NSUserDefaults standardUserDefaults] setObject:@"Dry" forKey:@"vesselType_preference"];
[[NSUserDefaults standardUserDefaults] synchronize];

我的“vesselType_preference”是多值属性,但它没有生效。请帮助这适用于其他类型的属性,但不适用于多值类型。

谢谢

4

2 回答 2

1
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];        
    if (![defaults objectForKey:@"vesselType_preference"])
    {
        [defaults setObject:@"Dry" forKey:@"vesselType_preference"];
    }
    [[NSUserDefaults standardUserDefaults] synchronize];

这应该有效。

于 2012-03-12T12:34:41.300 回答
0

NSUserDefaults 只能处理 NSDictionary、NSData、NSArray、NSString 和 BOOL 的对象。(可能还有另一个,不确定)如果您需要存储一个多值对象,如数组或字典,我会先将您的设置存储在那里,然后将其保存为默认值。

您的代码看起来很好,可以将信息存储到用户默认值。只需确保在保存之前指定了对象类型。(id) 将无法工作...或无法正常工作。

于 2012-03-12T12:47:39.823 回答