В моем приложении пользователи покупают расходные материалы, скажем, чемоданы, которые хранятся в Базовых данных.Когда пользователь впервые устанавливает приложение, я даю ему бесплатную возможность начать работу.Приложение не может функционировать без установки хотя бы одного чемодана.
Но если пользователь устанавливает приложение на свой iPhone, а затем на iPad и синхронизирует их, у них теперь есть 2 чемодана.И если они удаляют приложение на любом устройстве, а затем переустанавливают и синхронизируют его, они только что получили дополнительное и могут делать это бесконечно.
Я вижу два решения, но ни одно из них не кажется правильным:
Добавить значение в NSUbiquityKeyValueStore, когда пользователь впервые синхронизируется с iCloud.Проверьте это значение при первом запуске.Если это ноль, создайте халяву, если нет, синхронизируйте данные.Но это создает проблему.Что делать, если пользователь отключает iCloud или не имеет подключения к Интернету при первом запуске.Приложение создаст халяву, затем, когда iCloud будет доступен, синхронизирует дубликат, и они смогут делать это столько раз, сколько захотят.
Каким-то образом соответствуют элементы по умолчанию в каждом приложении.У меня была идея сопоставления идентификаторов объектов или временных меток, но они бы различались, и я не уверен, как с этим справиться.
Кто-нибудь знает, что я мог с этим поделать?
РЕДАКТИРОВАТЬ:
Использование предварительно упакованной базы данных плюс migratePersistentStore: toURL: options: withType: error: кажется, путь.Выложу ответ с кодом, если он у меня работает.