是否在我的iOS项目中使用核心数据的文件或sqlite数据库?

时间:2013-02-07 12:30:52

标签: ios objective-c core-data nsfilemanager

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

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

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

编辑09/02/2013


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

2 个答案:

答案 0 :(得分:2)

首先,我必须说,我发现网络服务器将其数据存储在文本文件中并使用自定义算法来操纵数据,这一点很奇怪。由于正在进行大量的数据操作,这对我来说似乎非常低效;在我看来,数据库会更好。

然而,从您的角度来看,这一切都取决于您从服务器处理的数据。您可以使用以下内容:

  1. SqlLite或CoreData - 使用这些方法是一条路。但是你可能需要额外的工作来将数据整理成表等等。通常的数据库东西。请参阅this link上的答案,以便更好地了解SqlLite与CoreData或Google之间的区别。

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

  3. 我想说方法#1方法在组织和速度方面具有优势(具有任何关系数据库的优势)。但是,缺点是你需要花更多的时间正确设置它。

    方法#2可以节省您的时间,因为您不必考虑数据结构或任何东西,只需转储和保存。但是,问问自己,服务器数据的大小是否容易增加?速度是加工的一个因素吗?等等。想想长远,而不仅仅是简短的修复。如果数据相对相同且负载很小,则此方法适合您。

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

答案 1 :(得分:0)

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

  • 约翰内斯