Ансамбли с каталогами в CloudKit
Я использую ансамбли в этом проекте, где у меня есть разные группы пользователей, которые хранятся в отдельных каталогах. Я построил это более или менее копируя пример приложения, синхронизирующий менеджер Idiomatic.
Инициализируя CDECloudFileSystem, я делаю это:
newSystem = [[CDECloudKitFileSystem alloc] initWithUbiquityContainerIdentifier:[CKContainer defaultContainer].containerIdentifier
rootDirectory:directoryString usePublicDatabase:YES];
Где directoryString - это глобальный идентификатор текущей группы пользователей.
Теперь я хотел бы иметь возможность переключаться между группами, позволяя пользователям размещать данные своей группы только локально на устройстве.
Моя идея, как решить эту проблему, состоит в том, чтобы изменить группу пользователей, выбрав ее из табличного представления (связка CKRecords с именем группы и глобальным идентификатором, соответствующим объектам ансамблей / базовых данных), удалив команду удаления старых данных в случае, если пользователь вошли в другую группу, а затем пиявка, чтобы получить данные выбранной группы.
Будет ли этот метод работать, будут ли старые данные локально удалены при удалении или есть ли лучшие способы сделать это?
1 ответ
Я думаю, что ваш план звучит хорошо. Основной проблемой будет то, как вы собираетесь управлять тем, как пользователь присоединяется к определенной группе.
Обратите внимание, что публичная БД является полностью публичной Что может быть интересно, так это то, что теперь есть опция для шифрования данных с помощью пароля. Он был только что добавлен в github. Вы можете использовать пароль, чтобы скрыть данные каждой группы.
Удаление просто удаляет кэш данных синхронизации. Это не удаляет ваши локальные постоянные данные магазина. Если вы снова пиявки, локальные данные будут импортированы снова. Если вы этого не хотите, вам придется удалить постоянное хранилище, удалить файлы хранилища и добавить обратно пустое хранилище.
Вы должны также проверить варианты пиявки. Существует один, который предполагает, что все данные находятся в облаке, и это должно быть более эффективным для вашего случая.