用户轻量级的数据持久化,主要用于保存用户程序的配置等信息,以便下次启动程序后能恢复上次的设置。
每个应用都有一个NSUesrDefaults实例,通过它可以存储应用配置信息以及用户信息,比如保存用户名、密码(密码最好加密以后存储)、字体大小、是否自动登录等等。数据自动保存在沙盒的Libarary/Preferences目录下(不安全,破解沙盒或者手机越狱就可以获取到文件)。同样,该方法只能存取NSString、NSArray、NSDictionary、NSData(图片可以转成NSData存储)、NSNumber类型的数据。
在程序启动后,系统会自动创建一个NSUserDefaults的单例对象,我们可以获取这个单例来存储少量的数据,它会将输出存储在.plist格式的文件中。其优点是像字典一样的赋值方式方便简单,但缺点是无法存储自定义的数据。
具体来说NSUserDefaults是iOS系统提供的一个单例类,通过类方法standardUserDefaults可以获取NSUserDefaults单例。如:
NSUserDefaults*defaults = [NSUserDefaultsstandardUserDefaults];
NSUserDefaults单例以key-value的形式存储了一系列偏好设置,key是名称,value是相应的数据。存/取数据时可以使用方法objectForKey:和setObject:forKey:来把对象存储到相应的plist文件中