2016-09-04 4 views
-1

Я работаю над приложением, которое зависит от данных, которые должны быть загружены с наших удаленных серверов при первом запуске приложения. В настоящее время я просто извлекаю данные, используя несколько различных функций, а затем загружая данные в разные массивы объектов. Я сделал некоторые исследования по предварительной загрузке данных, но все, что я нашел, специально связано с предварительной загрузкой данных с использованием объектов CoreData. Вот мои вопросы:iOS Swift Preloading Application Data

  1. Должен ли я загружать данные с использованием объектов CoreData? Можно ли загружать данные в массивы пользовательских объектов?

  2. Каковы преимущества и недостатки загрузки этих данных в массивы пользовательских объектов?

  3. Каковы плюсы и минусы загрузки данных в объекты CoreData?

  4. Как получить приложение для загрузки данных, убедитесь, что каждая функция завершена, и данные были загружены до того, как приложение переместится с загрузкой основного вида?

Спасибо!

+0

Основные данные сохраняют данные для вас, поэтому вы можете повторно использовать их, не перезагружая их при следующем запуске приложения. В зависимости от вашего варианта использования это может быть или не быть хорошим. – jcaron

ответ

1

Оба варианта загрузки данных в объекты CoreData и в массив пользовательских объектов в порядке, но в основном используются в разных целях. Хранение данных с использованием объектов CoreData является наиболее распространенным способом хранения постоянных данных. Таким образом, если вам, возможно, придется поддерживать автономную работу вашего приложения в будущем, это правильный выбор. Если вы точно знаете, что ваше приложение должно работать только в случае доступа к Интернету, нет необходимости поддерживать постоянство данных и хранить данные в массиве пользовательских объектов.

Говоря о цепочке запросов сервера данных. Вы можете выполнять синхронные вызовы в приложении: метод didFinishLaunchingWithOptions:. В таком случае приложение отображает экран запуска во время загрузки данных. Но это, вероятно, не лучшее решение, потому что пользователь может смутить то, что происходит так долго, до того, как приложение действительно запустится. Если бы я был вами, я предпочел бы создать экран загрузки с каким-то индикатором выполнения, который показывает, что пользователь загружает данные и сколько данных уже загружено. Для запросов цепочки в таком контроллере я бы использовал ReactiveCocoa. Вы можете найти пример, как это сделать link.

+0

К сожалению приложение: didFinishLaunchingWithOptions: не работает. Вот где мой код сейчас. Проблема, с которой я столкнулась, заключается в использовании пользовательского модуля под названием DropDown (https://cocoapods.org/pods/DropDown), и мое представление по умолчанию загружается до завершения источника данных, что означает, что меню пуст. Если я перейду по умолчанию и вернусь, все будет хорошо. Я не могу опубликовать код, потому что stackoverflow сосет и имеет ограничение на комментарии. – recoilnetworks

+0

Не могли бы вы обновить свой вопрос с помощью кода из приложения: didFinishLaunchingWithOptions: пожалуйста? – iyuna