Swift - Как правильно реализовать обновление / настройку CoreData для использования до загрузки ViewController - PullRequest
0 голосов
/ 05 октября 2018

Моя ситуация выглядит следующим образом:

Я буду использовать CoreData для хранения / выборки экземпляров сущностей, которые будут отображаться в tableView.В начале работы приложения я проверяю версию текущей библиотеки, а затем - при необходимости - загружаю обновленную версию (через JSON).

Проблема (я полагаю) заключается в том, что View Controller загружается и аварийно завершает работу, когда он пытается извлечь информацию tableView из источника данных до того, как «проверка версии» и «обновление библиотеки» в CoreData будут завершены.Поскольку обновление не завершено, библиотека не имеет экземпляров сохраненной сущности и возвращает нулевое значение для отображаемых строк, что приводит к сбою.

Мой вопрос: как правильно реализоватьфункция обновления и убедитесь, что все проверки «версии» и обновления «библиотеки» завершены до того, как начальный контроллер представления загружен и пытается извлечь необходимую информацию для отображения tableView.

Я предполагаю, что это как-то связано с«willFinishLaunchingWithOptions» в App Delegate, но я застрял с точки зрения того, как его настроить.Как вы уже догадались, я новичок в кодировании;поэтому, подробные ответы будут с благодарностью.

1 Ответ

0 голосов
/ 05 октября 2018

Чтобы выполнить некоторую длительную задачу (например, реализовать функцию обновления, такую ​​как проверки «версии» и обновления «библиотеки»), используйте следующий подход: -

  1. Создайте контроллер представления, аналогичныйконтроллер всплывающего окна, скажем, CustomSplashViewController
  2. В CustomSplashViewController выполните задачу проверки версий и обновления библиотеки
  3. После завершения проверки обновлений перейдите к контроллеру исходного представления.
  4. Если в CustomSplashViewController происходит сбой обязательных обновлений, отобразите всплывающее окно с кнопкой «Повторить попытку».
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...