首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过wifi在iOS设备之间同步核心数据?

通过wifi在iOS设备之间同步核心数据?
EN

Stack Overflow用户
提问于 2013-02-02 05:08:41
回答 2查看 471关注 0票数 3

我想通过wifi在iOS设备之间同步核心数据。我知道如何与ASyncSockets建立连接,但我不确定下一步-同步核心数据。

我知道在iOS和Mac之间进行同步的ZSync项目,但我想知道是否有人知道是否可以在iOS设备之间做同样的事情。

EN

回答 2

Stack Overflow用户

发布于 2013-02-02 15:42:46

你可以用几种方法解决这个问题,但我会考虑这两种方法中的一种:

  1. 获取NSManagedObject子类的属性,将其转换为NSData,并使用AsyncSocket来传输它们。然后,当接收应用程序收到所有属性时,它会在自己的database.
  2. Transfer中立即重新创建对象。不需要重新创建任何内容。

第一种选择的优点是它只发送它需要发送的内容。如果您有数千个对象,而您更改了一个对象,则只需传输该一个对象。另一方面,如果你在一个对象上有多个关系,事情可能会变得非常复杂,因为你将不得不发送相关的对象。

第二种选择对你来说是最简单的,但效率不是很高。如果您更改了一个对象,您将发送整个数据库。如果您的数据库有几兆字节大小,这可能需要一段时间,而且您每次进行更改时都会这样做。

理想情况下,您可以按照iCloud的方式进行操作。仅推送/拉出已更改的内容。我不知道iCloud如何确定这一点的实现,但我打赌这不是微不足道的事情。无论哪种方法最适合您,都取决于您的数据库有多大以及对象被修改的频率。方法2最适合修改很少的大型复杂数据库,如果您的数据库相对简单(没有关系或关系很少)并经历大量更改,则方法1最适合。

票数 0
EN

Stack Overflow用户

发布于 2013-02-02 21:30:45

如果你可以浏览网页,我肯定会选择iCloud,它能以一种高效的方式为你处理这个问题。如果你的应用程序应该只能在wifi上工作,也许你可以重新实现iCloud的相同行为。文档中描述了它的工作方式

在iOS 5中,核心数据包括增强功能,以支持SQLite存储与iCloud的高效集成。主要的新特性是,您提交到持久存储的每个更改都记录在存储在iCloud中的离散事务日志文件中,而不是直接将持久存储文件保存在云中。这意味着通过iCloud传播更改是有效的(另一种方法是为每个更改推送整个SQLite文件)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14655064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档