1

我是 iPhone 应用程序开发的新手,对存储数据有疑问。我花了很长时间学习核心数据,但仍然对持久存储的概念感到困惑。

我的理解是,核心数据只是管理从外部数据库下载的数据的一种方式。但是鉴于核心数据由 SQLite 支持,这是否意味着在运行时内存中存在 SQLite db?如果是这样,这是否意味着当我使用核心数据时,如果我在开始时下载大量数据集会更有效?但是对于需要不断更新数据的 twitter 或 Facebook 等应用程序来说,在这些情况下直接使用 $NSURLConnection$ 就足够了吗?如果使用核心数据,额外的开销(即数据对象)是否会对如此频繁的更新请求产生任何负担?

我还想了解一些为 iPhone 应用程序设置在线数据库的常用方法?通常是带有将数据转换为 JSON 的自制 Python 包装器的 MySQL 服务器吗?任何标准服务器提供商都会提供整个软件包?还是开源代码?

非常感谢!

4

1 回答 1

1

我将通过并尝试解决您的每个问题,如果我错过了一个,请告诉我!

首先,Core Data 也可以用来存储在你的应用程序中生成的信息,没有什么能阻止你以一种或另一种方式使用它。

我理解它的工作方式是,无论您的应用程序是否正在运行,文件或 Core Data 使用的其他存储机制都存在。在我看来,对于一个用户不得不等待一个大型数据库被下载并加载到本地数据库中而不能与你的应用程序交互并不是最好的方法,人们对 UI 的反应是消极的。当用户第一次运行您的应用程序时,您可能需要获取更大的数据集,但如果其中任何一个是通用的并且可以预加载是理想的,其余的应该在用户尝试下载时下载访问它。

Facebook 和 Twitter 应用程序的工作方式正如您所了解的那样,即建立了连接并从适当的站点提取信息,据我所知,它们存储的唯一内容是个人资料信息。我会犹豫是否使用 Core Data 来存储人们的信息,因为最终是的,由于必须连续几个月存储人们的新闻提要或消息,会产生大量开销。

至于建立在线数据库是我不熟悉的东西,所以希望其他人可以提供一些见解,或者如果我发现我认为可能有用的东西,我会在这里为你发帖。这部分实际上可能值得单独提出一个问题。

如果您需要我详细说明任何事情,请告诉我!

于 2012-07-25T16:43:03.707 回答