【发布时间】:2011-09-04 15:24:55
【问题描述】:
在 iPhone 中永久存储数据通常使用 Core Data 或 sqlite3 完成。大多数人更喜欢将 NSUserDefaults 用作应用程序偏好的存储,而不是将其用作普通数据库(例如 sqlite)。
我发现 NSUserDefaults 可以存储大量数据,它非常好用而且速度很快。那么为什么不将其用作永久存储呢? NSUserDefaults 作为数据库有什么限制?
更新:
我经常使用三种不同的方式将数据保存到磁盘。
- 核心数据
- 将对象序列化为 plist
- NSUserDefaults
我不再使用 FMDB(或直接使用 sqlite)了。 每种方法的主要优点和缺点是什么?
我遇到的 NSUserDefaults 的一些优点:
- 使用 NSPredicate 可以轻松完成排序、分组等操作。
- NSUserDefaults 是线程安全的。
- 只需一行即可获取数据并将其保存到 NSUserDefaults。
【问题讨论】:
-
sqlite3对于保持大数据库更有效,搜索速度更快,权限多。
-
但是当存在大量数据时,将数据存储在 nsuserdefaults 中会导致任何问题吗? sqlite3 有什么特权?
-
第一个也是主要的特权是您可以在 sqlite3 数据库中快速排序、分组、搜索
标签: iphone objective-c core-data nsuserdefaults