【问题标题】:How to save record to CloudKit when internet connection is unavailable互联网连接不可用时如何将记录保存到 CloudKit
【发布时间】:2014-12-09 08:03:04
【问题描述】:

这个问题很明显,但对我来说答案并不完全......

所以,我想将 (a) 记录保存到 CloudKit,我会这样做,当互联网连接允许时,但如何实现这一点,例如,当没有 wifi 连接和 3G/LTE 时在“飞行模式”中。

我不想每 15/30 分钟刷新一次,比如获取新邮件,而是在网络连接恢复时保存。

有什么想法吗?

【问题讨论】:

    标签: ios8 xcode6 cloudkit


    【解决方案1】:

    实现此目的的唯一方法是将数据保存在本地,然后在您建立连接时同步它。这取决于您将如何将其存储在设备上的数据类型。什么是最好的结构。您可以将其存储在 CoreData 中,或者仅存储在 XML 或其他文件中。为此,您确实需要一个同步机制。

    你可能想看看这个: Using Core Data, iCloud and CloudKit for syncing and backup and how it works together

    【讨论】:

    • 是的,我使用 Core Data,并将 NSManagedObjects 存储在一个可变数组中,但不确定我应该在哪里调用此方法..有什么建议吗?观察网络可用性的方法位于 AppDelegate 中,但等待上传的对象位于不同的 .m 文件中。顺便说一句,感谢您的回复!
    • 这里有一篇文章,其中包含有关如何使用它的更多信息:atomicbird.com/blog/cloudkit-moves-like-azure,这里是一步一步的教程:timroadley.com/2012/04/03/core-data-in-icloud
    • 我将所有记录删除和更改存储到两个 CKRecordIDs 和 CKRecords 数组中。在适当的时候(例如完成对组的编辑),我尝试将这些同步到 CloudKit。如果没有可用的连接,我会保留它们并继续添加到列表中。如果应用程序需要关闭,我会保存这两个文件(连同应用程序的当前数据)并在下次运行应用程序时恢复它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2014-11-30
    相关资源
    最近更新 更多