NSUserDefaults与CoreData
创建应用程序中最重要的方面之一是利用数据,但是在某些情况下,您的Internet连接可能不可用,因此使您的应用程序无用。 某种程度的数据持久性至关重要,这意味着我们可以在离线使用应用程序时存储数据。 有一些保留数据的方法,但是我要讨论的两种是NSUserDefaults和CoreData。 我想简要说明每种数据持久性选项的优缺点。
NSUserDefaults
这是使用键值对在没有数据库的情况下存储数据的最简单方法。 这种方法是存储少量数据的理想方法。 在大多数情况下,最好使用NSUserDefaults保存用户的设置和非关键数据。 NSUserDefaults支持以下类型:
- NSString
- NS编号
- NSDate
- NSDictionary
- NSData
优点
- 相对容易存储和检索数据
- 非常适合存储小尺寸数据(例如:用户设置)
- 易于学习和实施
缺点
- 不适合存储大量数据
- 存储大量数据时性能会下降
- 不适合存储敏感数据
核心数据
一个允许无需实际使用数据库即可持久存储数据的框架。 该框架类似于使用SQLite中的关系数据库。
优点
- 可以存储大量数据(手机上的内存越多,可以存储的数据就越多)
- 如果关系模型设置正确,可以非常快
- 能够更改对象本身而不更改整个数据库
缺点
- 学习困难
- 需要有效的数据结构和架构设计
- 迁移数据可能很困难