我正在处理显示只读数据的应用程序。 它更像是一本书。预填充只读应用程序的核心数据
使用SQLite很容易,但我对性能不满意并试图使用Core Data。
问题是预填充核心数据是它是一个艰难的过程。
我的问题是: 是否有可能建立一个助理iphone应用程序(供我使用),它使用相同的数据模型进行预填充。 ,然后取出填充的.xcdatamodel文件并在我的原始应用程序中使用它?
我希望这是有道理的:)
艾德
我正在处理显示只读数据的应用程序。 它更像是一本书。预填充只读应用程序的核心数据
使用SQLite很容易,但我对性能不满意并试图使用Core Data。
问题是预填充核心数据是它是一个艰难的过程。
我的问题是: 是否有可能建立一个助理iphone应用程序(供我使用),它使用相同的数据模型进行预填充。 ,然后取出填充的.xcdatamodel文件并在我的原始应用程序中使用它?
我希望这是有道理的:)
艾德
我相信你问的是你是否可以创建一个CoreData数据库的前期,并将其复制到iPhone。那是对的吗?
This article将有所帮助。这里有一个报价:
我因此建议以下五个步骤:
这是可能的,我已经做到了。
http://www.mac-developer-network.com/columns/coredata/may2009/
我不得不改变CSV部分的工作方式,而且要修改模型:我这里使用的代码做了一个桌面应用程序从一个CSV文件中读取。
applicationDidLaunch
方法中将sqlite复制到iPhone上的文档文件夹(如果它不在那里)。有可能它在资源文件夹中是不好的。即使您将数据库用作只读数据库,Core Data也可能想要写入数据。不知道这个虽然..桌面和iPhone核心数据sqlite文件似乎是完全相同的格式。只要它们具有相同的数据模型,您就可以将一个sqlite文件传输到另一个应用程序(iPhone到iPhone)。在另一个应用程序中,我使用NSXMLParser创建了Core Data sqlite文件,然后使用Simulator将它传输到另一个应用程序,都在iPhone上。
也谢谢你nevan ..这个解决方案对我来说有点复杂,因为我是一个新手,但你明确地表达了这个概念。 – Adhamox 2009-11-12 13:26:01
是的,你的数据源可以是你想要的任何东西。其他建议是很好的。创建一个与您想在您的应用中使用的管理对象模型(.xcdatamodel)相同的管理对象模型。读入文件中的数据,创建一个新的托管对象实例并从文件中填充它。然后保存,并潜入iPhone模拟器中的软件包并复制它。这还有额外的好处,就是所需的格式,以及所有有用的元数据。复制你的对象模型和你的托管对象类,你很好。
请注意,如果您确实希望它是只读的,并且您在安装时使用它,它将安装在已完成的应用程序包中(位于应用程序/ {SIGNATURE} /Myapp.app下) 。如果您打算编辑此数据库或允许用户保存该数据库,最好将其复制到您的用户数据库所在的Applications/{SIGNATURE}/Documents目录中。
嗨Benjamin 我已阅读此页面。 我的问题是: 我可以使用一个独立的程序,专门用于填充CoreData数据库,并且在我输入数据后,我将填充的数据文件从文档目录复制到我的主包中。 要重写: can我用独立的应用程序替换CVS文件步骤以输入数据? – Adhamox 2009-11-12 04:03:43
当然。只需消除步骤1.然后将第3步替换为允许您自己插入信息的屏幕,而不是解析任何数据文件。核心数据文件是其核心内容,只要您的.xcodedatamodel文件在项目之间相同,您就可以复制该文件并且它将起作用。 – 2009-11-12 10:11:57
谢谢:)这是有帮助的 – Adhamox 2009-11-12 13:25:25