В моем приложении есть данные, которые я получаю из Интернета и отображаю в своем приложении.Я храню эти данные в базе данных CoreData.Эти данные будут обновляться примерно каждые 30 минут.
Теперь я хочу добавить виджет для своего приложения и думаю о том, как лучше синхронизировать данные между виджетом и основным приложением.
Решение 1 . Переместите базу данных CoreData в общее пространство приложения и прочитайте данные оттуда.Не синхронизировать с виджетом и надеяться, что фоновая выборка основного приложения активируется и происходит достаточно часто.Но я думаю, что это худшее решение, поскольку данные в большинстве случаев не будут обновляться ...
Решение 2 . Переместите базу данных CoreData в общее пространство приложения и прочитайтеданные оттуда.Но поскольку данные обновляются только при открытии основного приложения, мне также нужно будет извлекать данные внутри виджета и сохранять их в базе данных.Это приносит несколько проблем.Во-первых, потенциальная одновременная запись в одну и ту же базу данных.Во-вторых, NSManagedObjectContext основного приложения, не отражающий каких-либо изменений, сделал мой виджет таким ... Не идеальным?!?
Решение 3 .: У виджета есть собственная копияданные.Но так как я хочу иметь около 2-3 виджетов, пользователь потенциально может выполнять бессмысленную синхронизацию только для того, чтобы иметь несколько копий данных.Но, по крайней мере, я думаю, что это будет решение с наименьшим количеством потенциальных конфликтов?
Мне интересно, что вы, ребята, предложите.Я немного читал об этом в Интернете, но пока не нашел крутого решения.Поэтому я ищу ваши предложения.