将iPhone CoreData文件从一个项目复制到另一个项目

将iPhone CoreData文件从一个项目复制到另一个项目,iphone,core-data,Iphone,Core Data,我正在尝试创建两个应用程序,一个用于构建持久存储,另一个用于使用它 到目前为止,我已经构建了一个应用程序,它使用CoreData成功地从XML文件构建了一个数据库。因此,该项目包含数据模型、实体的.h/.m文件等 我现在正试图通过将数据模型文件、与实体相关的.h/.m文件和sqlite文件复制到该项目中(通过添加现有文件),使第二个应用程序能够读取该.sqlite文件 代码执行,但始终无法在数据库中找到任何对象 在试图复制这些文件时,是否有任何限制或正确的步骤?我认为(不是100%确定)在您的应

我正在尝试创建两个应用程序,一个用于构建持久存储,另一个用于使用它

到目前为止,我已经构建了一个应用程序,它使用CoreData成功地从XML文件构建了一个数据库。因此,该项目包含数据模型、实体的.h/.m文件等

我现在正试图通过将数据模型文件、与实体相关的.h/.m文件和sqlite文件复制到该项目中(通过添加现有文件),使第二个应用程序能够读取该.sqlite文件

代码执行,但始终无法在数据库中找到任何对象


在试图复制这些文件时,是否有任何限制或正确的步骤?

我认为(不是100%确定)在您的应用程序列表中,如果您将应用程序包名称设置为相同的名称,他们将共享资源,因为设备会认为他们是同一个应用程序…

我认为这不会按照您希望的方式工作。在iPhone上,每个应用程序都在自己的“沙盒”中运行,一个应用程序不可能编写另一个可以读取的文件

它真的是两个不同的项目,还是同一个项目中的两个目标?这似乎更有意义,然后您可以在实体对象发生变化时共享它们。

这里的解决方案看似简单

只需将.xcdatamodel文件从一个项目复制到另一个项目,然后当您第一次在模拟器中运行应用程序时,它将为应用程序创建一个Documents文件夹。只需将保存的.sqlite或.binary文件放入设备上的yourApp/Documents目录。 您可以在“~user/Library/Application Support/iPhone simulator”中找到模拟器目录

您还可以在已配置的iPhone上下载、编辑和上载myApp目录,方法是在Organizer中拖放。请看应用程序列表

iPhone不支持包含核心数据的xml存储,只支持sqlite或原子(二进制)。对于大多数应用程序来说,sqlite存储是更好的选择,因为它不必在运行时全部加载到内存中


这就是你的意思吗?

为了将核心数据文件从一个项目复制到另一个项目,我首先创建了一个具有核心数据支持的新项目,然后打开了以前的核心数据文件的内容,除了根标记外,将新核心数据文件中的所有子标记粘贴到了新项目中。
以前我试图在新项目中删除coredata文件,复制粘贴上一个文件并更改其名称,但它不起作用。

但我相信,如果它们具有相同的捆绑路径,它们将共享资源。但实际上,它们被视为同一个应用程序,我在最初的帖子中应该更清楚。我要做的是在模拟器中运行一个应用程序,用大量的XML文件创建一个数据库(持久存储)。然后,将数据模型+数据库和实体相关的.m/.h文件复制到实际应用程序中,该应用程序通常只读取该数据库。因此,一旦在实际设备上,我只在第二个应用程序中工作。这有意义吗?谢谢你的帮助!目前,我真的有他们作为两个不同的项目。一个是“数据存储创建者”,它将实体从XML加载到一个持久的SQLite存储中,另一个是实际的应用程序。谢谢!我将.xcdatamodeld包从一个项目复制到另一个项目(使用不同的名称)。我甚至重命名了该文件&其中的
.xcdatamodel
文件(显示包内容)以匹配另一个项目的名称,但它似乎仍然可以正常工作。有点可怕,因为这对我来说都是二元的。我希望能有办法区分这些文件。希望这些文件不包含任何特定于项目的内容(如项目名称)。确保设置核心数据堆栈的代码使用新名称。并且,您可能希望在再次运行应用程序之前删除该应用程序,以便它可以重新创建SQLlite文件。