NSUserDefaults与CoreData

创建应用程序中最重要的方面之一是利用数据,但是在某些情况下,您的Internet连接可能不可用,因此使您的应用程序无用。 某种程度的数据持久性至关重要,这意味着我们可以在离线使用应用程序时存储数据。 有一些保留数据的方法,但是我要讨论的两种是NSUserDefaults和CoreData。 我想简要说明每种数据持久性选项的优缺点。

NSUserDefaults

这是使用键值对在没有数据库的情况下存储数据的最简单方法。 这种方法是存储少量数据的理想方法。 在大多数情况下,最好使用NSUserDefaults保存用户的设置和非关键数据。 NSUserDefaults支持以下类型:

  • NSString
  • NS编号
  • NSDate
  • NSDictionary
  • NSData

优点

  • 相对容易存储和检索数据
  • 非常适合存储小尺寸数据(例如:用户设置)
  • 易于学习和实施

缺点

  • 不适合存储大量数据
  • 存储大量数据时性能会下降
  • 不适合存储敏感数据

核心数据

一个允许无需实际使用数据库即可持久存储数据的框架。 该框架类似于使用SQLite中的关系数据库。

优点

  • 可以存储大量数据(手机上的内存越多,可以存储的数据就越多)
  • 如果关系模型设置正确,可以非常快
  • 能够更改对象本身而不更改整个数据库

缺点

  • 学习困难
  • 需要有效的数据结构和架构设计
  • 迁移数据可能很困难