什么是归档和解档?
- 归档(也称对象的序列化) 就是通过某种格式把对象保存成本地文件,以便以后读回该对象的内容
- 解档(也称解归档/读档) 就是把归档的对象文件读成原来的对象的过程
如何归档和解档
1. 系统类的归档和解档
注:1. NSDictionary也可以直接进行归档和解档 2. 归档的对象包括这个对象中的属性,它们所属的类都必须要遵守NSCoding 协议才能归档和解档
2. 自定义类的归档和解档
如果自定义的类对象要进行归档,那么这个对象的属性所属的类也必须要遵守归档协议NSCoding
必须实现以下两个方法:
3. 归档成文件时,需要使用的类与方法
4. 归档后的文件读出为对象时,需要使用的类与方法
NSUserDefault
生成单例对象
1.存放类似plist文件中能存的信息:字典,数组,字符串,布尔数据,数字对象,NSData,NSDate
2.像操作字典一样进行存入和读出
NSUserDefaults单例以key-value的形式存储了一系列偏好设置,key是名称,value是相应的数据。存/取数据时可以使用方法objectForKey:和setObject:forKey:来把对象存储到相应的plist文件中,或者读取,既然是plist文件,那么对象的类型则必须是plist文件可以存储的类型,正如官方文档中提到的——
- NSData
- NSString
- NSNumber
- NSDate
- NSArray
- NSDictionary
而如果需要存储plist文件不支持的类型,比如图片,可以先将其归档为NSData类型,再存入plist文件,需要注意的是,即使对象是NSArray或NSDictionary,他们存储的类型也应该是以上范围包括的。
[defaults synchronize];
其中,方法synchronise是为了强制存储,其实并非必要,因为这个方法会在系统中默认调用,但是你确认需要马上就存储,这样做是可行的。