Получение nil из standardUserDefaults, - PullRequest
       3

Получение nil из standardUserDefaults,

1 голос
/ 15 сентября 2010

Я создал файл Settings.bundle для своего приложения и пытаюсь прочитать настройки по следующему коду:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(!defaults)
{
    NSLog("can not get default bundle");
}
NSString *usr = [NSString stringWithFormat:@"%@",[defaults stringForKey:@"username"]];
NSLog(usr);

Вывод в консоли (ноль). Я использовал это раньше, и это сработало. Такая ситуация произошла после того, как я обновился до последней версии xcode для iOS. Я не уверен, есть ли какие-либо изменения?

Вот снимок экрана из моего Settings.bundle.

alt text

Ответы [ 2 ]

0 голосов
/ 15 сентября 2010

Если вы переключаете симуляторы (новый или регрессионный SDK) или запускаете разные версии ОС в симуляторах, любая информация сеанса, включая значения по умолчанию, может не переноситься между этими различными запусками симулятора.

0 голосов
/ 15 сентября 2010

stringForKey: возвращается nil.

Возвращается nil, потому что не может найти ключ для «имени пользователя».

Он не может найти ключ для "имени пользователя", потому что ключ не существует в пользовательских настройках по умолчанию для этого приложения.

Ключ не существует, потому что (A) он никогда не существовал для этого приложения или (B) он существовал, но он был удален.

(A) Может произойти на устройстве или симуляторе, если приложение будет удалено через Springboard или если все устройство (симулятор) будет сброшено. Верен ли какой-либо из этих двух сценариев?

(B) Может произойти, если вы сделали что-то в своем коде, чтобы удалить ключ. Вы можете подтвердить, что это не так?

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