将核心数据从一个项目转移到另一个项目

4
答案可能是一个响亮的“不”,但在我从头开始一个新项目之前,我想问一下。
我创建了许多临时项目来测试想法和代码,然后将成功的部分从这些项目中合并到最终版本中。所以我有一个已经解决了Core Data问题的项目,但我想将它移动到一个新项目中。我的猜测是,内部钩子太多了,只是简单地放置.xcdatamodel和sqlite数据库是行不通的。
如果我错了,那就太好了...
3个回答

1

我在几个项目中尝试过这个方法,发现其中一个 SQLite 表格里有一个构建编号的条目。删除该条目解决了我的迁移问题。在此之前,我一直收到相同的错误提示,特别是一个无法创建持久化存储的错误。


我刚刚测试了一下,它可以工作!只需删除表Z_METADATA中的唯一记录,就可以将使用Core Data创建的一个.sqlite文件从一个目标转移到另一个目标。我使用了开源的SQLite数据库浏览器 - Diego Freniche

0

你应该能够做到。只要在引用时确保正确命名所有内容。实际上,我现在有一个项目,它在 OS X 和 iOS 版本中使用完全相同的数据模型。


那么只需要将.xcdatamodel、.sqlite和一些ManagedObject类文件移动过去,当然还要修改引用持久存储的代码,就可以了吗? - 听起来太美好了。 我会尝试的。 - 谢谢 - Michael Morrison
嗯...它差不多对我有用。我正在崩溃XCode(版本4.x),当我运行代码时,它会陷入“2011-07-27 17:05:56.352 Mobile MPVI [1650:707] ***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因是:'无法使用空模型创建NSPersistentStoreCoordinator'。”我无法追踪我的模型没有被分配--代码在那里 :) - mobibob
@mobibob 模型为空的最可能原因是找不到它。请确保您使用的URL正确,并且在构建时正确地添加到捆绑包中。 - ughoavgfhw
我认为这只是从我的研究项目复制粘贴到我的最终项目中的一个弱点。最终我只能手动删除文件并重新手动创建模型。由于模型很小,所以这并不太痛苦,但我希望将来可以将更大的模型复制到我的项目中,而不会破坏我的代码。 - mobibob

0

虽然这是一个老问题,但我自己也遇到了同样的问题!Michael...我和你一样工作,非常沮丧,因为我无法弄清楚如何将代码数据模型移动到不同的项目中。我的解决方案最终变得很愚蠢。您可以使用command-c和command-v剪切和粘贴核心数据实体从一个项目到另一个项目。

哎呀。我有一个从.csv文件加载数据模型的项目...所以我不需要数据随着数据模型一起出现。希望这有所帮助!

我想象一旦数据模型相同,您就可以轻松移动.sqllite文件,但我还没有尝试过。希望这有所帮助。


谢谢Matt。坦白地说,我们重新开始了。 - Michael Morrison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接