ios - 在 iOS 设备中保留批处理消息历史记录

标签 ios cocoa-touch nsuserdefaults

我在我的应用程序中实现了一个 IM 消息传递模块,但是在将消息保留为历史记录方面存在问题。在我的模型中,我使用服务推送所有消息,新消息使用套接字。

我认为在设备上保存消息历史记录是节省服务带宽的更好方法。我正在考虑使用 NSUserDefaults 来保存数据,但我真的不知道性能问题。有没有更好的方法来在设备中保留大量行?

最佳答案

如果数据量较小,则使用 NSUserDefaults。

但是如果数据量大的话就用CoreData或者Sqlite。它安全可靠。

Apple 在性能方面让 CoreDate 变得更好。

Sqlite3 对于保存大型数据库和访问数据库元素更有用。您可以对 sqlite3 数据库的项目进行排序,您可以非常快速地搜索 Sqlite3 数据库中的项目。

您不会看到速度差异,但最好还是为您正在做的事情选择正确的机制。如果它只是首选项然后使用 NSUserDefaults,否则我会将您的对象序列化到 plist。如果您是 Cocoa 的新手,我会首先避免使用 Core Data 甚至 sqlite,让您自己有机会先学习基础知识。

关于ios - 在 iOS 设备中保留批处理消息历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254579/

相关文章:

ios - 使用哪种方法在启动时设置变量?

ios - 由于NSUserDefaultsDidChangeNotification,UI在后台线程上发生了变化

ios - 两个 ViewController - 第一个有 x 个按钮,第二个有 x 个标签

ios - 在 ubuntu 14.04 vps 上访问 var/www 文件夹

ios - 如何进行多线程以更快地将图像加载到tableView?

iphone - 当可以使用 NSUserDefaults 时,为什么要使用单例在多个 View Controller 之间共享数据?

ios - 应用程序被杀死时删除钥匙串(keychain)

ios - 使用自定义 Xib 在 UITableViewCell 上加载数据

ios - 获取属性字符串中具有 url 属性的字符串数量

iphone - 使用核心数据按工作日分组