目标 c - 合并 CoreData SQL 文件


我已经在努力

解决这个问题很长一段时间了,但仍然没有找到最有效的处理方法。 以下是详细信息:

我有一个应用程序,它使用核心数据来存储应用程序要显示的内容。 该应用程序以 SQLite 数据库的形式下载内容,并尝试将其与本地版本合并。 这是必要的,因为下载的内容通常需要与用户之前下载的内容相结合。

为了使事情变得更加复杂,我还需要一种组合这些文件的方法,以便下载干净(换句话说,核心数据文件中没有无关关系或孤立的对象)。 我已经为此构建了编辑器,但是再次遇到了合并这些sqlite文件的问题。

我想找到一种更好的方法来组合这些 sqlite 数据库(如果存在的话)。 我已经看到您可以使用持久存储协调器添加许多不同的存储文件,但是将所有正确的存储协调到单个下载包中变得更加困难和危险。

问题是:使用多个 sql 存储并将它们制作成一个方便的 .sqlite 文件或让它们无缝运行的最佳方法是什么?

首先,不要认为这是一个SQLite问题。这是一个核心数据问题。如果你在同一段落中使用Core Data和SQLite,你已经输了。CD确实(有时)使用SQLite作为其后备存储,但这些知识并不能帮助您解决此问题。

当我必须解决组合静态数据和用户生成的数据的问题时,我通常使用两种不同的数据模型,在我的控制下的静态端有一个唯一的 ID。静态数据和实时数据之间的任何组合引用我以编程方式处理,这工作正常,因为与我的静态数据相比,用户数据很小。

还可以调查提取的属性,这些属性允许您从不同的持久存储中获取值。

我认为将原始静态数据与更新的静态数据合并是错误的方法。这种操作将在设备上花费很长时间。

您可以使用三种不同的持久存储吗?第一个将与您的应用程序捆绑在一起,立即可用。第二个是从服务器下载的更新数据,将完全替代第一个。最后,您将拥有一个用户数据存储,该数据存储通过提取的属性或您自己的唯一 ID 连接到主数据。

Core Data也有可能是这个特定钉子的错误锤子。如果你有很多SQLite专业知识,如果你真的更习惯使用SQLite而不是核心数据,那就跳过核心数据。在直接SQLite中完成整个事情。

最新更新