3

CoreData 非常棒。它使使用 SQLite DB 编码持久存储变得非常可预测。

CloudKit 非常棒。它使在 iCloud 中编写持久存储变得容易,并且可以在用户的​​设备之间共享。

CoreData + CloudKit 非常棒,因为它带来了本地数据存储和设备之间共享的优势。

现在, Apple 在使用 CoreData + CloudKit 时不支持用户之间的 CloudKit 共享这一事实让我感到完全愚蠢和惊讶。 每次我提出这个问题,人们都会看着我,为什么有人要这个?我很困惑。有没有理由不想利用本地+云同步的可共享存储组合?

如果有人可以帮助我理解为什么这不存在或者为什么我不想设计将本地持久性与云同步以及在用户之间共享这些对象的能力相结合的存储,那将是非常有用的?

4

2 回答 2

2

贾斯汀,如果我理解你的观点,你是 100% 正确的,

“现在,Apple 在使用 CoreData + CloudKit 时不支持用户之间共享 CloudKit 的事实让我完全傻眼了……”

同步非常困难

我们生活的时代的“主要技术基石”是 Parse(编程它的人当之无愧地赚了数万亿美元)、Firebase 以及 AWS 和 Goog-services 提供的同步服务。

还有许多其他同步竞争对手,如 Couchbase、ably.io、realm.io 和类似的骨干网,如 pubnub。

同步实际上是当今主要的互联网骨干网。

(最大的服务——TikTok、Twitter——只不过是你所要求的,同步服务,顶部添加了一些按钮和徽标。)

作为计算机科学问题,CFRD 和其他方法确实非常非常非常困难 ( https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type ),而且从硬件和大规模布线上来说,这非常困难。

所以你基本上是在说“苹果什么时候能快点建立一个同步主干,这样我就可以最终停止使用 {Firebase、AWS 或任何你的毒药}......”

你是对的。

(而且不要忘记,一个问题是,我们生活在 droid-iphone 的二元世界中。没有客户会雇用你为狗构建下一个 tiktok,为狗构建下一个 facebook,这将是“只是 iOS”。如果 Apple制作自己的同步服务,它一到就死,创造中最无意义的白象,除非它是ios,droid,www以及像unity等次要专业。)

如果我理解你的问题,是的,我想这只是时间问题。但是(就像任何同步主干一样)它必须是全平台的。

甚至不要提及物联网,苹果眼镜等。

于 2020-07-17T13:05:56.863 回答
1

周围都同意了。

正如您所提到的,NSPersistentCloudKitContainer它不支持在 iOS 13 中共享,但由于许多反馈要求它在今年被添加(目前处于测试阶段)。以下是关于公共数据库的 WWDC20 演讲:https ://developer.apple.com/videos/play/wwdc2020/10650/ 。

这里的起点是通过NSPersistentCloudKitContainerOptions.databaseScope

同时,如果你需要在这些东西发布之前立即分享,你可以直接访问 CKRecords 来实现自己的分享,而无需重新构建整个 CloudKit 实现。有点模糊,但该文档的第一段明确指出,只是没有详细说明 CKShare 如何用于核心数据同步。

于 2020-07-17T12:43:30.903 回答