在 iPhone 上永久存储数据通常使用 Core Data 或 sqlite3,而大多数人更喜欢将 NSUserDefaults 用作应用程序首选项的存储,而不是像 sqlite 那样使用它作为普通数据库。
我发现可以在 NSUserDefaults 中存储大量数据,它非常易于使用且速度很快。那么为什么不将其用作永久存储呢?NSUserdefaults 作为数据库的限制有哪些?
更新:
我经常使用三种不同的方式将数据保存到磁盘中。
- Core data
- 对象序列化为 plists
- NSUserDefaults
我不再使用 FMDB(或直接使用 sqlite)了。每种方法的主要优缺点是什么?
我遇到的一些 NSUserDefaults 优点:
- 使用 NSPredicate 可以轻松完成排序、分组等操作。
- NSUserDefaults 是线程安全的。
- 只需一行代码就可获取和保存数据到 NSUserDefaults。