【问题标题】:How to store immutable text in iOS app (to be available at first and every launch)?如何在 iOS 应用程序中存储不可变文本(在首次和每次启动时可用)?
【发布时间】:2012-08-29 04:26:43
【问题描述】:

我是 iOS 编程新手,一般编程经验很少(仅限高中水平)。最近注册了一个 iOS 开发者帐户并想创建一个电影行情应用。

我想使用 Core Data 来保存超过 300,000 个包含这些实体的报价。 文本文件的大小约为 8 MB。

引用: 收件人:报价单 Rel: saidByCharacter, 来自电影

电影: Att:电影名称,电影海报链接 Rel:quotesFromThisMovie(对多),字符(对多)

电影角色: 收件人:字符名 Rel: 来自电影

显然,所有这些数据都必须包含在应用程序中。还将有一个文件夹,其中包含超过 50,000 张用于电影海报的小图像。

我的问题是如何在应用内存储文本信息(使用 Core Data)?

我已经阅读了 Apple 的 iOS 核心数据教程,核心数据编程指南,观看了斯坦福的 iOS 课程,阅读了 Stephen Kochan 关于 Objective-C 的书,并在互联网上搜索了有关这个真正入门任务的一些信息,但一无所获.我想知道这件事是否如此简单以至于不需要教程......

【问题讨论】:

  • 观看有关 Core data 的 Apple WWDC 视频,它有你的大部分答案。
  • 创建一个应用程序只是为了将数据从文本文件导入核心数据然后捆绑已经填充的数据库的情况并不少见。
  • 如果您希望它是不可变的,您不需要使用 Core-Data,您可以将文件直接存储在您的应用程序包(.txt、.xml 等)中。如果您在此处存储数据,您将能够读取它但不能写入它。
  • @NSPostWhenIdle 所说的仍然可以使用 CoreData 或直接使用 SQLite 完成。我相信您宁愿运行查询也不愿自己搜索 300,000 条引号。
  • @Joe Wow 我一定是不知何故错过了那个细节......我猜 Core Data 或 SQL 将是处理这么多数据的方式!

标签: iphone ios ios5 core-data


【解决方案1】:

看看Ray Wenderlich's core data tutorial - 特别是part 2,它是关于如何将种子数据添加到您的应用程序的。

【讨论】:

  • 教程部分提供的内容在 Paul (Hagerty) 的斯坦福 iOS 5 课程的第 13 和第 14 讲中非常清楚地介绍了,我完全理解了。但是这部分,即我的实际查询,是他们采取捷径并使用在我看来像作弊/捷径的代码的地方。它使用 Python,我想知道如何仅使用 XCode、Objective C 和 iOS 5 API 来做到这一点。还是做不到?? (我是菜鸟,请多多包涵!)
【解决方案2】:

您是否应该选择使用 Core Data--

Ray Wenderlich 的教程很不错:

http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

但是,直接使用 Core Data 需要大量样板代码,这有点痛苦。为了解决这个问题,创建了 Magical Record(和辅助类 Magical Import),它确实简化了流程:

https://github.com/magicalpanda/MagicalRecord

但是,正如 Wenderlich 关于“预加载数据”的第二个教程所说,您需要先通过某种方法将数据导入 Core Data。

为此,您可以在应用程序包中使用平面文件(例如 sqlite/sqlite3 文件),或者您可以设置 Web 服务(用于随时间变化的内容,由您控制,这是不可能的如果您将其捆绑到应用程序中)。

您也可以在 Wenderlich 的网站上找到有关创建 Web 服务驱动应用程序的教程。

干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多