【问题标题】:CoreData + CloudKit but No sharingCoreData + CloudKit 但不共享
【发布时间】:2020-07-16 18:25:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ios swift core-data nspersistentcloudkitcontainer cloudkit-sharing


    【解决方案1】:

    贾斯汀,如果我理解你的观点,你是 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这样的次要专业等等。)

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

    更别提物联网、苹果眼镜等。

    【讨论】:

      【解决方案2】:

      大家都同意了。

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

      这里的起点是通过NSPersistentCloudKitContainerOptions.databaseScope

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-12
        • 2018-05-27
        • 1970-01-01
        相关资源
        最近更新 更多