2010-02-08 1 views
1

Использование NSUserDefaults для сохранения/загрузки нескольких небольших значений ... это довольно просто.Где лучшее место для размещения кода сохранения/загрузки NSUserDefault?

Но ГДЕ Я бы разместил код SAVE или LOAD?

Я хочу, чтобы значения по умолчанию были НАГРУЗНЫ, только если/когда отображается определенное представление. Я хочу, чтобы по умолчанию SAVE, только когда это представление вышло/выгружено/скрыто.

(Я создал простое приложение с помощью «вида на основе шаблона» и имеют свои значения строки на представлении, внутри UITextFields.)

ответ

3

Как насчет viewWillAppear и dealloc/viewDidDisappear методов, что вид-х UIViewController?

+0

Я боялся, что viewWillAppear запустит мой код «слишком рано». (Пока еще не было представления.) Я боялся, что viewDidDisappear или viewDidUnload запустит мой код «слишком поздно». (Вид уже не был.) Должен ли я сделать что-нибудь особенное, чтобы получить viewDidDisappear или viewDidUnload для запуска? (За исключением создания их.) – Bonnie

+1

'viewWillAppear' запускается по мере того, как ваше представление собирается показать на экране (значит, оно уже должно существовать). Аналогично, 'viewDidDisappear' будет запускаться после того, как ваше мнение будет снято с экрана. 'viewDidUnload' вызывается только тогда, когда у вашего приложения заканчивается память (так не всегда) –

+0

В обоих случаях ваше мнение будет по-прежнему существовать. –

0

Ну, ваш говорить о взглядах так:

viewDidLoad/viewWillLoad 
viewDidUnload/dealloc 

Кажись, как хорошие кандидаты. Кроме того, в ваших методах инициализации, особенно если вы хотите инициализировать iVars в этом месте чем-то из NSUserDefaults.

+0

Это были мои оригинальные мысли, но возможно, она хочет это должно произойти * каждый раз, когда представление отображается/исчезает. –

+0

Да, ваше право - я думаю, это действительно зависит от потребностей OP. –

0

Вы всегда должны поместить код в свою собственную пару файлов, чтобы управлять настройками по умолчанию пользователя, и этот модуль должен отвечать за сериализацию и десериализацию, хотя объекты, которые сериализованы, должны обладать этой виртуозностью. Вы получаете только настройки, которые вам абсолютно необходимы в viewDid Load, чтобы не замедлять инициализацию.

Если у вас есть удобные пользовательские настройки, массивы и словари, несколько данных сеанса, не делайте ошибку, сохраняя их под одним словарем и ключом. Разделите их.

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

 Смежные вопросы

  • Нет связанных вопросов^_^