Приложение iphone Settings сохраняет данные - PullRequest
1 голос
/ 26 января 2010

В моем приложении я использую объект NSUserDefaults для хранения имени пользователя, пароля и URL-адреса сервера во встроенном приложении «Настройки». Если данные не сохранены, пользователю предоставляется интерфейс входа в систему, и при успешном входе в систему имя пользователя и пароль сохраняются. Затем в моем приложении у меня есть представление, которое отображает эту информацию, но текст отсутствует, как будто данные еще не были сохранены в настройках. Вот код:

...
NSUserDefaults* appSettings = [NSUserDefaults standardUserDefaults];
[appSettings setObject:username forKey:USERNAME];
[appSettings setObject:password forKey:PASSWORD];

if ( [appSettings synchronize] ) {

   // display an alert with a positive message
} else {
   // display an alert with a negative message

}

Итак, после входа в систему отображается положительное сообщение, но когда я снова получаю данные, там ничего нет, если я не перезапущу приложение.

Что мне нужно сделать, чтобы сохранить данные немедленно или, по крайней мере, до того, как другой контроллер представления должен прочитать настройки?

1 Ответ

2 голосов
/ 26 января 2010

Объект NSUserDefaults хранит свои данные в памяти и является глобальным объектом (в любом случае, для вашего приложения). Таким образом, все, что вы храните там, должно быть немедленно доступно любому, кто попытается получить к нему доступ впоследствии. Вам не нужно звонить синхронизировать здесь. Если вы не получаете свои данные, вы должны проверить порядок своих звонков, чтобы убедиться, что они звонят, когда вы думаете, что это так.

...