将核心数据从一个项目转移到另一个项目
Posted
技术标签:
【中文标题】将核心数据从一个项目转移到另一个项目【英文标题】:Transfer Core Data from One Project to Another 【发布时间】:2011-01-17 04:22:19 【问题描述】:答案可能是响亮的“不”,但在我从头开始一个新项目之前,我想我会问。
在将草稿项目中的所有成功部分组合成最终版本之前,我创建了许多一次性项目来测试想法和代码。所以我有一个核心数据项目已经完成,但我想把它转移到一个新项目中。我的猜测是 .xcdatamodel 中有太多内部钩子和删除,而 sqlite db 将无法正常工作。
我很高兴错了......
【问题讨论】:
【参考方案1】:我在几个项目中尝试过这个,我发现其中一个 sqlite 表中有一个内部版本号的条目。删除该条目为我解决了迁移问题。在此之前,我遇到了同样的错误,尤其是无法创建持久存储的错误。
【讨论】:
我刚刚测试过它并且工作正常!只需删除表 Z_METADATA 中的唯一记录,就可以将使用 Core Data 创建的一个 .sqlite 文件从一个目标传输到另一个目标。我使用的是开源的SQLite Database Browser【参考方案2】:你应该可以做到的。只要确保在引用它时正确命名所有内容。实际上,我现在有一个项目,它对 OS X 和 ios 版本使用完全相同的数据模型。
【讨论】:
所以只需移动 .xcdatamodel、.sqlite 和一些 managedObject 类文件,当然修改引用持久存储的代码,应该这样做吗? - 听起来好得令人难以置信。我会试试看。 - 谢谢 嗯......它几乎对我有用。我正在崩溃 XCode(Ver 4.x),当我运行代码时,它会陷入“2011-07-27 17:05:56.352 Mobile MPVI[1650:707] *** 由于未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:'无法使用 nil 模型创建 NSPersistentStoreCoordinator'。”我无法追踪我的模型没有被分配——代码在那里:) @mobibob 模型为零的最可能原因是找不到它。确保您使用的 URL 正确,并且在构建时正确添加到包中。 @ughoavgfhw 我认为这只是从我的研究项目复制粘贴到我的最终项目的一个弱点。我最终只是手动删除了文件并手动重新创建模型。由于模型很小,这并不太痛苦,但我希望将来可以将更大的模型复制到我的项目中,而不会限制我的代码。【参考方案3】:老问题,但我自己也遇到了这个问题,试图解决同样的问题! Michael ... 我和你一样工作,对我无法弄清楚如何将代码数据模型移动到不同的项目中感到非常沮丧。我的解决方案最终变成了 doh!愚蠢的。你可以...
使用 command-c 和 command-v 在项目之间剪切和粘贴核心数据实体
哎哟。我有一个从 .csv 文件加载数据模型的项目......所以我不需要数据与数据模型一起出现。希望对您有所帮助!
我想一旦数据模型相同,您就可以移动 .sqllite 文件,但我没有尝试过。我希望这会有所帮助。
【讨论】:
谢谢马特。坦率地说,我们刚刚重新开始。以上是关于将核心数据从一个项目转移到另一个项目的主要内容,如果未能解决你的问题,请参考以下文章
Qt - 如何将 QListView 项目转移到另一个 QListView?