Я неправильно использую NSUserDefaults? - PullRequest
4 голосов
/ 19 марта 2009

Я создал модель «Настройки» для своего приложения для iPhone. Он содержит только два свойства и метод класса для загрузки и один метод экземпляра для сохранения.

Я загружаю его следующим образом

+ (UserSettings *)getCurrent {
    NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults];
    UserSettings *settings = [UserSettings new];
    settings.username = [userPrefs stringForKey:kUserNameKey];
    settings.password = [userPrefs stringForKey:kPasswordKey];
    [userPrefs release];
    return settings;
}

Проблема в том, что обработка NSUserDefault вызывает исключение;

- [NSCFArray objectForKey:]: нераспознанный селектор отправлен на экземпляр 0x50b220

Я импортировал свой заголовок с константами, которые определены следующим образом;

#define kUserNameKey    @"Username"
#define kPasswordKey    @"Password"

(Я знаю о цепочке для ключей и планирую перейти к ней позже, но хочу решить пользовательские ошибки)

Ответы [ 2 ]

7 голосов
/ 19 марта 2009

попробуйте удалить [userPrefs release], так как вы никогда не сохраняли и не распределяли его

0 голосов
/ 21 марта 2009

Как ваши свойства UserSettings определены для имени пользователя / пароля? Они должны быть установлены на «копирование» для строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...