【问题标题】:Abandon Core data with iCloud and just Store / Load sqlite file of core data into iCloud storage使用 iCloud 放弃核心数据,只需将核心数据的 sqlite 文件存储/加载到 iCloud 存储中
【发布时间】:2013-01-21 04:41:48
【问题描述】:

我正在制作核心数据库应用程序。 我努力在多个设备上通过 iCloud 同步核心数据,但失败了。我注意到大量的开发人员和我在同一个区域。

https://devforums.apple.com/message/770288#770288

http://www.jumsoft.com/2013/01/response-to-sync-issues/

所以请不要说有更好的方法来同步它或在同步时重新连接设备。 我们知道 iCloud 的核心数据是我们现在必须避免的事情。我浪费了半年。

我现在要做的是将核心数据的 sqlite 文件存储到 iCloud 存储中,这样我就可以像同步一样使用它。 (请不要说它不同步。我现在不想谈论冲突问题)(而且我的 sqlite 文件的大小很小) 但我面临几个问题,不知道最好的方法是什么。我没有太多时间,因为我已经浪费了很多时间。

我的问题是

  1. Apple 不允许在 iCloud 上存储 sqlite 文件?
  2. 使用带有 iCloud 的 UIDocument 是最好的方法吗?
    • 我从这里查看了 ray 的教程 http://www.raywenderlich.com/12779/icloud-and-uidocument-beyond-the-basics-part-1 他使用 iCloud 来同步这些照片,而且看起来效果很好。但我想知道我是否也可以使用 sqlite 文件来做到这一点。如果是的话,我想我需要知道如何将 sqlite 文件转换为 nsdata 并将 nsdata 转换为 sqlite,就像 ray 对 PNG 文件所做的那样。

我使用 iCloud 查找 UIDocument 的原因是,从 iCloud ubiquetes 存储的文档文件夹中存储和加载似乎效果不佳。但是带有 iCLoud 文件同步的 UIDocument 似乎工作得很好。

所以你认为这是个好主意吗?谁会一起去?

谢谢

明亮的李

【问题讨论】:

    标签: iphone core-data icloud


    【解决方案1】:

    并不是说 Apple 不允许在 iCloud 中使用 SQLite 文件——而是他们警告你这样做是一个真的坏主意。文件损坏的可能性很大,因为在打开时更改它的几率很高。

    如果您的数据存储确实非常小,请考虑改用无处不在的键值存储。

    【讨论】:

    • 但是它并没有那么小。。我不明白为什么它会损坏,你能告诉我为什么吗?
    • 我的方案是,每次在核心数据中调用 save 方法时,我都会将 sqlite 文件存储到 iCloud 中,并在应用启动时加载它。什么会变坏?
    • 我认为这样做没有问题,因为我想做的只是复制整个 sqlite 文件而不是同步。
    • 他们没有具体说明,但几乎可以肯定这与协调您的应用程序和 iCloud ubd 守护程序之间的文件访问有关。如果您非常小心地只使用NSFileCoordinator 访问 SQLite 文件(协调写入、使用文件、关闭它,并确保在完成协调访问之前将更改保存到文件中),那么您 可能侥幸逃脱。
    • 嗨,Tom Harrington,您能否提供 iCloude 的任何示例代码。在此先感谢..
    猜你喜欢
    • 2013-04-02
    • 2012-09-27
    • 2018-01-08
    • 2014-07-24
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多