我是 iPhone 应用程序开发的新手,对存储数据有疑问。我花了很多时间学习核心数据,但仍然对持久性存储的概念感到困惑。
我的理解是,核心数据只是一种管理从外部数据库下载的数据的方式。但是鉴于核心数据由 SQLite 支持,这是否意味着在运行时内存中存在 SQLite 数据库?如果是这样,那是否意味着当我使用核心数据时,如果我一开始就下载一个庞大的数据集会更有效?但是对于需要不断更新数据的应用程序,如 twitter 或 Facebook,在这些情况下直接使用 $NSURLConnection$ 就足够了吗?如果使用核心数据,额外的开销(即数据对象)是否会对如此频繁的更新请求造成任何负担?
我还想了解一些为 iPhone 应用程序设置在线数据库的常用方法?通常是带有将数据转换为 JSON 的自制 Python 包装器的 MySQL 服务器吗?任何标准的服务器提供商会提供整个包吗?还是开源代码?
非常非常感谢!
最佳答案
我将尝试解决您的每一个问题,如果我遗漏了一个问题,请告诉我!
首先,Core Data 也可用于存储在您的应用程序中生成的信息,没有什么能阻止您以这种或那种方式使用它。
我对它的工作方式的理解是,无论您的应用程序是否正在运行,文件或 Core Data 使用的其他存储机制都存在。在我看来,让用户不得不等待大型数据库下载并加载到本地数据库而无法与您的应用程序交互并不是最好的方式,人们对 react 迟钝的 UI react 消极。当用户可能第一次运行您的应用程序时,您可能需要获取更大的数据集,但如果其中任何一个是通用的并且可以预加载是理想的,那么其余的应该在用户尝试时下载访问它。
Facebook 和 Twitter 应用程序的工作方式正如您所了解的那样,即建立连接并从适当的站点提取信息,据我所知,它们唯一存储的是个人资料信息。我会犹豫是否使用 Core Data 来存储人们的信息,因为最终是的,必须连续几个月存储人们的新闻提要或消息会导致大量开销。
至于在线数据库的设置是我不熟悉的,所以希望其他人可以提供一些见解,或者如果我发现一些我认为可能有用的东西,我会在这里发回给你。这部分实际上可能值得单独提出一个问题。
如果您需要我详细说明任何事情,请告诉我!
关于iphone - Xcode数据库使用困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654401/