在运行时存储大量要生成的信息
Posted
技术标签:
【中文标题】在运行时存储大量要生成的信息【英文标题】:Storing large amount of information to be generated before run-time 【发布时间】:2012-07-06 22:30:09 【问题描述】:我目前正在开发一个旅游应用程序,该应用程序将存储和显示有关不同景点和雕塑的信息,并且我正在研究存储信息的不同选项。
所有内容都将在运行前生成,什么都不会 在运行时生成。 我正在寻找一种方便的方式 写入/生成它,例如从 电子表格。因此,我正在考虑 xml 和 csv、sqlite、 核心数据,或归档。 要存储的内容将是自定义的 NSObject 的子类,例如 Tour 类(NSObject 子类), 带有实例变量,例如要查看的 NSArray of Sights(NSObject 子类)和 *tourName (NSString)。 我目前在主视图控制器的 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 方法中定义内容,但我确信这不是最有效的方法。欢迎提出任何建议,以及它的优缺点。 此外,Core-Data 似乎是最好的选择,但在我看来,数据只能在运行时以编程方式生成。或者有什么方法可以在运行时之前在 Core-Data 中生成实体实例?
谢谢。
【问题讨论】:
Core Data 绝对是最好的选择,然后你的模型对象可以直接是NSManagedObject
的子类。只需编写一个小帮助程序,它会获取所有源并将它们编译到 Core Data 种子中,并在源更改时运行它。然后你只需要在应用程序中实际包含 Core Data 文件,并且不需要在设备上生成任何内容。
谢谢。您的建议沿着我正在考虑的路径进行。请给我一些存储要由 Core-Data 编译的源代码的便捷方法的示例,好吗? (即:csv、xml、文本文件、sqlite?)
【参考方案1】:
你可以很容易地在你的 mac 上生成 CoreData 数据库。您可以编写一个原生应用程序来自己管理数据库,或者将原始数据保存为任何其他格式(CSV、JSON 等)并将其转换为 CoreData。
无论如何,您只需创建 CoreData 数据库,并将其包含在您的应用程序包中。当您在应用程序中创建 CoreData 堆栈时,在持久存储上设置只读选项,您应该一切顺利。
【讨论】:
以上是关于在运行时存储大量要生成的信息的主要内容,如果未能解决你的问题,请参考以下文章