2015-01-21 3 views
0

В моем приложении: didFinishLaunchingWithOptions: метод, я установил некоторые необязательные словари и сохранил их до стандартных стандартных значений по умолчанию. Однако словари недоступны при загрузке tableview, и мое приложение ломается.Код делегата iOS/Swift не запускается сначала

Кроме того, у меня есть println (1), который не запускается в приложении: didFinishLaunchingWithOptions: метод перед загрузкой tableView и сбой приложения.

Мне просто интересно, когда приложение: didFinishLaunchingWithOptions: выполняется относительно того, когда инициализируется первое представление.

+1

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

ответ

1

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

+0

@Nico Да, но мой ответ был в контексте заданного вопроса. «Мне просто интересно, когда приложение: doneFinishLaunchingWithOptions: выполняется относительно того, когда инициализируется первое представление». Относительно первого представления, которое было инициализировано didFinishLaunchingWithOptions: первое. Надеюсь, что это облегчит вам путаницу. –