Где в жизненном цикле моего iOS (Swift) приложения я должен получить все свои данные из firebase?

Пользователь может не взаимодействовать с моим приложением до тех пор, пока все данные не будут получены из firebase. Итак, мой новый план:

  1. Начать спиннер
  2. Извлекать данные из базы данных (асинхронно)
  3. Когда шаг 2 асинхронное задание завершено, затем скрыть счетчик

Мои первые мысли как новичка часто - не путь, и должен быть более умный путь, где задействована инфраструктура (возможно, какое-то место в жизненном цикле приложения) или шаблон передовой практики.
Я не могу найти полезных вещей на www. Ссылка также может быть полезной.

2 ответа

Решение

Вы должны получить ваши данные в ViewDidLoad ()

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

Как правило, iOS вызывает viewDidLoad() только один раз, когда его представление контента впервые создается; однако представление содержимого не обязательно создается при первом создании контроллера. Вместо этого он лениво создается при первом обращении системы или любого кода к свойству view контроллера.

Ваши данные будут получены при просмотре в загруженном.

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

viewWillAppear () - Вызывается непосредственно перед тем, как представление контента контроллера представления добавляется в иерархию представления приложения. Используйте этот метод для запуска любых операций, которые должны произойти до того, как представление контента будет представлено на экране. Несмотря на название, только потому, что система вызывает этот метод, это не гарантирует, что представление контента станет видимым. Вид может быть скрыт другими видами или скрыт. Этот метод просто указывает, что представление контента собирается добавить в иерархию представления приложения.

Я бы предложил вам создать контроллер представления, который отвечает за загрузку приложения, а в фоновом режиме он синхронизируется с вашим бэкэндом. Имея такой контроллер представления вместе с индикатором загрузки, вы также можете показать процентное продвижение для лучшего UX. После завершения синхронизации вы можете перейти к домашнему контроллеру.

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

Другие вопросы по тегам