1

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

初始化 CDECloudFileSystem 我这样做:

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

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

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

我的想法如何解决这个问题是通过从表视图中选择它来更改用户组(一组具有组名称和全局 ID 的 CKRecords 对应于 Ensembles/Core Data 对象),deleeching 以删除旧数据以防用户登录到不同的组,然后盗取所选组的数据。

这种方法是否有效,旧数据会在本地删除还是有更好的方法来解决这个问题?

4

1 回答 1

2

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

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

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

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

于 2015-02-25T17:00:54.347 回答