Буду признателен за помощь в обьяснении моей проблеммы. Задача: Получать данные с сервера через заданные промежутки времени, фоном(т.е когда приложение свернуто) и обновлять таблицу с данными.
Что не получается: получать данные когда приложение свернуто
В связи с тем у меня есть несколько вопросов:
Сейчас вся логика получения и обработки данных у меня реализована в основном классе ViewController, спомощью NSTimer и сетевых запросов. Если я запускаю приложение на симуляторе и сворачиваю его, то приложение продолжает нормально работать и получать данные. Однако при запуске на реальном телефоне, при сворачивании приложения - оно останавливается. Это баг или это нормальное поведение?
Прочитал про Background Fetch - правильно ли понимаю, что этот механизм создан для решений задач типа моей?
Да. Вам нужен Background Fetch
Но только обратите внимание, вы не сможете указать точное время апдейта, а лишь какой-то абстрактное. ОС сама определит когда у нее будут лишнее ресурсы и разбудит ваше приложение на небольшой срок
А есть ли в IOS механизм сервисов, ну как в Android. У меня необходимость получать данные именно по расписанию, вне зависимости активно приложение или нет.
Roman1985: на сколько я помню, нет. Теоретически это можно реализовать через silence push (которые remote push notifications). Общая схема такова - сервер во время А шлет тихий пуш, приложение фетчит данные и живет дальше своей жизнью. Но пуши не надежны, пуши могут прийти с опозданием, пуши требуют сервер/сервис и свой механизм потверждения, шедулера, пуши могут отключить (не знаю влияет ли это на silence push)