NSUserDefaults standardUserDefaults setObject: forKey: не работает для предпочтения с несколькими значениями - PullRequest
1 голос
/ 12 марта 2012

Я пытаюсь выполнить следующую задачу

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

, где мой «vesselType_preference» является многозначным атрибутом, но он не выполняетсяПожалуйста, помогите, это работает для другого типа атрибута, но не работает для многозначного типа.

Спасибо

Ответы [ 2 ]

1 голос
/ 12 марта 2012
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];        
    if (![defaults objectForKey:@"vesselType_preference"])
    {
        [defaults setObject:@"Dry" forKey:@"vesselType_preference"];
    }
    [[NSUserDefaults standardUserDefaults] synchronize];

Это должно работать.

0 голосов
/ 12 марта 2012

NSUserDefaults может обрабатывать только объекты NSDictionary, NSData, NSArray, NSString и BOOL.(Там может быть другой, не уверен). Если вам нужно сохранить объект с несколькими значениями, например, массив или словарь, я сначала сохраню ваши настройки там, а затем сохраню их по умолчанию.

Ваш код выглядитштраф за хранение информации по умолчанию для пользователя.Просто убедитесь, что вы указали тип вашего объекта перед сохранением.(id) не будет работать ... или не будет работать должным образом.

...