Привет всем!
Подскажите по сохранению данных приложения. Сейчас я использую Core Data для данных таблицы в приложении.
При первом запуске приложения должен подгружаться некий стандартный заготовленный список в таблицу. Сейчас это реализовано в AppDelegate через проверку флага в UserDefaults – при первой загрузке подгружаются данные в Core Data и флаг меняется. Потом пользователь волен делать что хочет – добавлять строки, удалять их.
Задача – чтобы данные сохранялись даже после переустановки приложения. Для этого предполагаю использовать CloudKit (без лишних телодвижений и сторонних сервисов).
Вопросы такие:
1. Данные после переустановки приложения автоматически подтянутся в него?
2. Как отследить есть ли данные в CloudKit? Это нужно для того, чтобы понять – нужно подгружать стандартный заготовленный список или нет. В документации написано, что данные из CloudKit автоматически переходят в CoreData. Вот только на каком этапе это происходит?
То есть желаемая логика такая: А) Загрузка приложения Б) Проверка, есть ли данные пользователя в CloudKit, В1) Если нет, то подгружать стандартный заготовленный список, В2) Если да, то .. ничего не делать..? и все подтянется автоматически.
В CloudKit есть 3 контейнера.
public
private
shared
На сегодня реализован автоматический mirroring для
public
private
Поэтому нужно гуглить public database mirroring cloudkit. Это объясняется также в видео wwdc2020 вроде (или 2019), ну и по private был даже пример в их документации. После настройки работает прекрасно и автоматически. Проверял на privateCloudDatabase. Public не было надобности пока что.
Данные, как мне кажется, можно видеть и менять даже через CloudKit Dashboard (ну и из кода), для остальных 2 точно можно дашбоард, но лишь для аккаунта разработчика. Но public же общий, поэтому по логике должно быть удобно.