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。您可以使用密码来隐藏每个组的数据。
删除只是删除同步数据的缓存。它不会删除您的本地持久存储数据。如果你再次吸血,本地数据将再次导入。如果您不想这样,则必须删除持久性存储,删除存储文件,然后添加回一个空存储。
您还应该检查吸血选项。有一个假设所有数据都在云端,这对您的情况应该更有效。
我在这个项目中使用 Ensembles,我将不同的用户组存储在不同的目录下。我已经或多或少地复制了示例应用程序,即 Idiomatic 的同步管理器。
初始化 CDECloudFileSystem 我这样做:
newSystem = [[CDECloudKitFileSystem alloc] initWithUbiquityContainerIdentifier:[CKContainer defaultContainer].containerIdentifier
rootDirectory:directoryString usePublicDatabase:YES];
其中 directoryString 是当前用户组的全局 ID。
现在我希望能够在群组之间切换,让用户只能在设备本地拥有他们群组的数据。
我的想法是通过从 table 视图中选择用户组来更改用户组(一组 CKRecords,其组名和全局 ID 对应于 Ensembles/Core 数据对象) ,删除旧数据以防用户登录到不同的组,然后删除以获取所选组的数据。
这个方法行得通吗?旧数据会在本地删除吗?还是有更好的方法来解决这个问题?
我觉得你的计划听起来不错。主要挑战将是您将如何管理用户加入特定组的方式。
另请注意,public 数据库完全是 public。可能有趣的是,现在有一个使用密码加密数据的选项。它刚刚添加到 github。您可以使用密码来隐藏每个组的数据。
删除只是删除同步数据的缓存。它不会删除您的本地持久存储数据。如果你再次吸血,本地数据将再次导入。如果您不想这样,则必须删除持久性存储,删除存储文件,然后添加回一个空存储。
您还应该检查吸血选项。有一个假设所有数据都在云端,这对您的情况应该更有效。