Каков разумный способ отображения данных из Core Data в виджете iOS 14?

У меня есть приложение, использующее стек Core Data + CloudKit. (Базовые данные синхронизируются между устройствами.). Теперь я хочу отображать данные из Core Data в виджете iOS 14 (просмотреть в WidgetKit target).

Моя цель состоит в том, чтобы данные в виджете также были фактическими данными из Core Data: то есть - пользователь изменил запись на устройстве A, а немного позже на устройстве B (с виджетом) изменения, представленные в виджете.

Как мне это сделать:

a) Добавить возможность группы приложений для основной цели приложения и цели виджета; и получить основные данные в целевом виджете.
б) Получить основные данные в основном целевом приложении, сохранить в файл (plist ?, JSON?), а затем использовать этот файл в виджете.
в) Получить основные данные в основная цель приложения, получите эти данные из цели виджета. (Является ли это возможным?)

Какой самый разумный способ? Спасибо за любые предложения.


person Igor R.    schedule 18.09.2020    source источник
comment
Вы можете легко использовать один и тот же контейнер Core Data для приложения и виджета. См. Раздел Получение данных из виджета CoreData для iOS 14 или Обмен данными между основным приложением и виджетом в SwiftUI для iOS 14   -  person pawello2222    schedule 18.09.2020
comment
@ pawello2222 ty за ваш комментарий. Я получаю сообщение Контекст в среде не подключен к постоянному координатору хранилища в строка 32, содержание на GitHub. Если вы можете направить меня в правильном направлении ...   -  person Igor R.    schedule 18.09.2020
comment
Похоже, вы смешиваете разные managedObjectContext переменные. Для начала, что такое @Environment(\.managedObjectContext) var moc в BooksWidget - как он инициализируется? Если вы не знаете, как использовать managedObjectContext, вы всегда можете использовать глобальный базовый стек данных и получить к нему доступ оттуда - см. этот ответ .   -  person pawello2222    schedule 18.09.2020