@FlooDwm

Swift 3.0 Core Data — фоновое обновление?

Суть вопроса. Есть база на телефоне, необходимо проверка на обновление базы данных на сервере. ВО ВРЕМЯ ЗАПУСКА приложения И ПРЕДПОЛОЖИМ ЕЩЕ ОДИН РАЗ В ДЕНЬ в фоновом режиме. Куда наступать, все читал все какая-то муть.
Объясните именно логику действий! Например по последней дате обновления. Как сравнивать как дополнять базу только с использованием МИНИМУМА ТРАФИКА.
ЗЫ - Сервер - ПХП - MySQL
- На телефоне Core Data
  • Вопрос задан
  • 960 просмотров
Решения вопроса 1
@sojik
Вам надо настроить в проекте возможность Background Fetch
Затем реализовать один метод - application(_:performFetchWithCompletionHandler:) - который будет побыстрому запрашивать обновленные данные с сервера
Более подробно здесь - https://www.raywenderlich.com/92428/background-mod... - раздел про Background fetch
Сама логика обновления уже зависит от вас. Например, если у вас чат, то вы запрашиваете сообщения больше id которые уже в базе. Или сообщения, дата которых больше тех, что уже в базе. Обычно тот же запрос, который вы используете при старте приложения, чтобы обновить данные, вы можете засунуть и в этот запрос. Но надо иметь ввиду, что телефон сам выбирает, когда запрашивать обновление данных - это могут быть каждый 10 минут, а могут быть и часы.
То есть еще раз. Ваш телефоно в бэкграунде обращается к Core Data и выясняет дату последних данных, или id или еще чего. На основе этого запрашивает новые данные у вашего сервера. Полученные данные разбирает и складывает в Core Data и снова укладывается спать, до следующего пробуждения системой.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@freeg0r
.. some dude ..
Недавно встретил в Appboy есть возможность фонового пуша (APNS), который может запускать фоновый процесс в приложении. Кроме того можете запускать обновление Core Data в бекграунде, когда пользователь выходит из приложения, или если находит метки геолокации. Вот здесь табличку можете посмотреть, все понятно по моему https://developer.apple.com/library/content/docume... ..и это от Swift не зависит..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы