Core data CloudKit中目录的集成

Core data CloudKit中目录的集成,core-data,sync,cloudkit,ensembles,Core Data,Sync,Cloudkit,Ensembles,在这个项目中,我使用的是集成,其中不同的用户组存储在不同的目录下。我创建了这个程序,或多或少是复制了示例应用程序,惯用的同步管理器 初始化CDECloudFileSystem我执行以下操作: newSystem = [[CDECloudKitFileSystem alloc] initWithUbiquityContainerIdentifier:[CKContainer defaultContainer].containerIdentifier rootDirectory:director

在这个项目中,我使用的是集成,其中不同的用户组存储在不同的目录下。我创建了这个程序,或多或少是复制了示例应用程序,惯用的同步管理器

初始化CDECloudFileSystem我执行以下操作:

  newSystem = [[CDECloudKitFileSystem alloc] initWithUbiquityContainerIdentifier:[CKContainer defaultContainer].containerIdentifier
rootDirectory:directoryString usePublicDatabase:YES];
其中directoryString是当前用户组的全局ID

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

我的想法是如何解决这一问题,通过从表视图中选择用户组(一组带有组名称和全局ID的CKRecords,对应于集合/核心数据对象)来更改用户组,在用户登录到其他组时删除旧数据,然后获取所选组的数据


这种方法行得通吗?旧数据会在deleech上本地删除吗?还是有更好的方法

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

还要注意,公共数据库是完全公共的。有趣的是,现在有了一个使用密码加密数据的选项。它刚刚被添加到github。您可以使用密码隐藏每个组的数据

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


你也应该检查水蛭选项。有一种假设所有数据都在云中,这对您的情况来说应该更有效。

谢谢,我在删除持久存储时遇到了一些奇怪的错误。也许另一种解决方案可以是在对象之间循环,删除所有数据,然后初始化管理器并从新的目录数据中提取数据?我一定会检查加密选项。顺便说一句,谢谢你提供了一个很棒的框架。将集成集成到现有项目中的过程非常简单,这正是我想要的。删除所有数据也可以。拆除商店可能很棘手。在删除文件之前,需要将其从PSC中删除。请注意,这会使所有MOs无效,因此您应该确保UI重新蚀刻或不访问对象。