我正在开发一个iOS笔记应用程序,用户可以在其中添加图像,文本,音频和绘图笔记。我想在多个设备之间实现iCloud同步。在3个选项(键值,文档存储,CloudKit)中,我应该选择哪一个?我也想在用户之间实现笔记的共享(协作)。我目前正在使用核心数据作为数据库。
答案 0 :(得分:0)
键值存储毫无疑问,这是因为目标太有限了,仅在需要处理和存储整个文档时才建议使用文档存储。由于您已经使用CoreData
进行本地存储,因此仅将常规CloudKit
用于云存储和共享才有意义。
CoreData
和CloudKit
的同步可能很困难。我个人使用的是RxCoreData
和RxCloudKit
库的组合,它们在同步和语法语法上也有所缓解。
提前一句话,关于唯一性约束:对于CoreData
,您可以基于所有值的键或哈希值来定义它们,对于CloudKit
,仅可能(也需要)据我所知,CKRecord
键。因此,最好从一开始就加以照顾。
答案 1 :(得分:0)
恕我直言,CloudKit是唯一的见解:)
我有一个名为marknote
的记事应用。最初,我使用iCloud文档存储。它有时起作用,但不稳定。最糟糕的是,何时以及是否可以同步文档不受您的控制,而是依靠Apple的守护程序服务。当您的文档过大(例如几兆字节)时,情况甚至更糟。
因此,经过一段时间的战斗,我更改为CloudKit。正如@ maxim-volgin已经指出的那样,CloudKit同步的实现很困难,但是很可靠。切换到CloudKit之后,所有的头痛都消失了。