可以将Realm用作表示CloudKit公共数据库的持久性模型吗?

时间:2016-02-24 19:11:46

标签: ios swift realm cloudkit

我想使用Realm作为持久性模型来表示我的CloudKit公共数据库。这可能吗?

具体来说,我想使用CloudKit获取Realm数据模型并将其存储在我的CloudKit公共数据库中。

这将克服我每次将应用程序加载到内存时必须从CloudKit获取数据的当前问题。如果没有本地数据模型,当没有Internet连接时,由于没有持久性,因此不会获取任何数据。

如果应用程序已从内存中删除,则应用程序中保存的从CloudKit获取的任何数据也将从内存中删除。

2 个答案:

答案 0 :(得分:1)

有可能,你只需编写代码就可以将模型对象转换为可以发送到CloudKit的CKRecords。

如果您尝试使用私有数据库,我建议使用此库,它与Realm和Core Data兼容(免责声明,我是作者):https://github.com/mentrena/SyncKit

Core Data的另一个解决方案是https://github.com/nofelmahmood/Seam

但是,公共数据库不允许查询更改,因此您必须推出自己的实现以保留某些记录查询的缓存,而不是整个模型的完全同步的本地缓存。

答案 1 :(得分:0)

在我看来,如果你想使用CloudKit,你应该使用Core Data作为持久存储。它很好地协同工作。

如果您更喜欢现代解决方案,请尝试使用Realm Mobile Platform https://realm.io/products/realm-mobile-platform/

此外,您可以尝试使用Vapor编写一些自定义后端,并使用Realm作为持久存储。