Я использую ансамбли в этом проекте, где у меня есть разные группы пользователей, хранящиеся в отдельных каталогах. Я создал это более или менее копируя пример приложения, диспетчера синхронизации Idiomatic.
Инициализация CDECloudFileSystem я делаю так:
newSystem = [[CDECloudKitFileSystem alloc] initWithUbiquityContainerIdentifier:[CKContainer defaultContainer].containerIdentifier
rootDirectory:directoryString usePublicDatabase:YES];
Где directoryString — это глобальный идентификатор текущей группы пользователей.
Теперь я хотел бы иметь возможность переключаться между группами, позволяя пользователям иметь данные своей группы только локально на устройстве.
Моя идея, как решить эту проблему, состоит в том, чтобы изменить группу пользователей, выбрав ее из табличного представления (набор записей CKRecords с именем группы и глобальным идентификатором, соответствующим объектам Ensembles/Core Data), удалить старые данные, если пользователь войти в другую группу, а затем получить данные выбранной группы.
Будет ли работать этот метод, будут ли старые данные удалены локально на делече или есть более эффективные способы сделать это?