CloudKit 中的目录集合

Ensembles with directories in CloudKit

我在这个项目中使用 Ensembles,我将不同的用户组存储在不同的目录下。我已经或多或少地复制了示例应用程序,即 Idiomatic 的同步管理器。

初始化 CDECloudFileSystem 我这样做:

  newSystem = [[CDECloudKitFileSystem alloc] initWithUbiquityContainerIdentifier:[CKContainer defaultContainer].containerIdentifier
rootDirectory:directoryString usePublicDatabase:YES];

其中 directoryString 是当前用户组的全局 ID。

现在我希望能够在群组之间切换,让用户只能在设备本地拥有他们群组的数据。

我的想法是通过从 table 视图中选择用户组来更改用户组(一组 CKRecords,其组名和全局 ID 对应于 Ensembles/Core 数据对象) ,删除旧数据以防用户登录到不同的组,然后删除以获取所选组的数据。

这个方法行得通吗?旧数据会在本地删除吗?还是有更好的方法来解决这个问题?

我觉得你的计划听起来不错。主要挑战将是您将如何管理用户加入特定组的方式。

另请注意,public 数据库完全是 public。可能有趣的是,现在有一个使用密码加密数据的选项。它刚刚添加到 github。您可以使用密码来隐藏每个组的数据。

删除只是删除同步数据的缓存。它不会删除您的本地持久存储数据。如果你再次吸血,本地数据将再次导入。如果您不想这样,则必须删除持久性存储,删除存储文件,然后添加回一个空存储。

您还应该检查吸血选项。有一个假设所有数据都在云端,这对您的情况应该更有效。