在我的 iOS 项目中是不是使用文件或使用核心数据的 sqlite 数据库? [关闭]

Posted

技术标签:

【中文标题】在我的 iOS 项目中是不是使用文件或使用核心数据的 sqlite 数据库? [关闭]【英文标题】:Whether use files or sqlite database using core data in my iOS project? [closed]在我的 iOS 项目中是否使用文件或使用核心数据的 sqlite 数据库? [关闭] 【发布时间】:2013-02-07 12:30:51 【问题描述】:

我正在为当前在线运行的网络应用程序开发 iPhone 应用程序。 当前的 Web 应用程序使用 txt 文件来保存数据。当前系统使用自己的标准将数据保存在文件中,并且还制定了自定义算法来读取和写入数据。 每个 txt 文件的大小低于 1 mb。 正在进行大量数据操作。

那么在实现相同的同时我想为 iPhone 应用选择什么? 在苹果网站上,他们说“SQLite 非常适合低级关系数据库工作” https://developer.apple.com/technologies/ios/data-management.html 但就我而言,它是高级别的。

所以请帮助我做出决定。我想使用核心数据管理文件或 sqlite 数据库中的数据吗? 每个的优点和浓度是什么? 使用文件时是否存在内存问题或性能问题?

编辑 09/02/2013


感谢您回答“user76859403”。 当前的 Web 应用程序也使用数据库来保存重要信息,如成员详细信息、登录凭据等,其他内容保存在文件中。在当前系统中有不同的部分,所有这些部分都有几个子部分和相关信息。这些部分及其详细信息保存在文件中。创建的自定义算法只是读取这些文件并将所有数据作为记录放入缓存中(与核心数据 managedobjectcontext 中相同),并且每当数据发生变化时,整个文件都会被覆盖。我还想知道是否可以将 webserver 中使用的那些类和算法导入 iOS,这样我可以节省时间为 iOS 重写相同的算法?当前的服务器代码是 C#

【问题讨论】:

所以应用程序将从网络中提取数据,对其进行操作,然后重新提交处理后的数据? 是的。你明白了。 :) 用户甚至可以离线工作。当连接到互联网时,数据会与服务器同步 【参考方案1】:

首先,我必须说我觉得奇怪的是,Web 服务器将其数据存储在文本文件中,并使用自定义算法来操作数据。鉴于正在发生大量数据操作,这对我来说似乎效率很低;在我看来,数据库会更好。

但是,从您的角度来看,这完全取决于您从服务器处理的数据。您可以使用以下内容:

    SqlLite 或 CoreData - 使用这些方法是一种可行的方法。但是您可能需要额外的工作将数据整理到表格等中。通常的数据库内容。请参阅this link 上的答案,以更好地了解 SqlLite 和 CoreData 或 Google 之间的区别。

    只需将数据保存在文件中,就像在服务器上完成一样。有几种方法可以做到这一点,包括Property List files 等。Here's one method 使用 NSCoding 完成。

我会说方法#1 方法在组织和速度方面具有优势(具有任何关系数据库都具有的优势)。但是,缺点是您将花费更多时间正确设置它。

方法#2 可能会节省您的时间,因为您不必考虑数据结构或任何东西,只需转储并保存即可。但是,问问自己,服务器数据的大小是否会增加?速度是处理的一个因素吗?等等等等。考虑长期,而不仅仅是短期解决方案。如果数据相对相同且负载较小,则此方法适合您。

在我看来,您选择的方法很大程度上取决于您的数据负载和未来的项目范围(无论是快速修复,还是当前系统的长期改进)。

【讨论】:

【参考方案2】:

如果您要处理任何“高级”问题,我强烈建议您使用 Core Data。还结帐 mogenerator https://github.com/rentzsch/mogenerator。这个很棒的教程应该可以帮助您入门:http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

约翰内斯

【讨论】:

感谢 4 位您的推荐。我已经有使用 coredata 的经验

以上是关于在我的 iOS 项目中是不是使用文件或使用核心数据的 sqlite 数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法建邮件核心的库,而不是直接把项目拖到我的项目中

从项目中的核心数据开始?

如何在我的项目中创建第二个目标来为 iOS 创建一个预填充的数据库

我是不是破坏了在我的 AJAX 脚本中使用 NodeJS / socket.io 的好处?

当我使用 iPhone 运行项目时如何在 iOS 中使用 sqlite

如何从核心数据表 ios 中检索数据?