NSKeyedArchiver序列化就我简单理解就是把iOS中的类转换为二进制数据,我们可以方便的把而进制数据存起来。接下来分别以iOS原有的类和自定义的类序列化存储做简单的说明:
使用NSUserDefaults存储一个很小的图片,当然了我们要知道实际存储的是一个二进制数据所以我们需要序列化:
将图片转换为二进制数据
NSKeyedArchiver.archivedDataWithRootObject(image!)
看完整的代码
func saveImage(name:String) {
let image = UIImage(named: name)
//将图片转换成二进制数据
let data = NSKeyedArchiver.archivedDataWithRootObject(image!)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: name)
//同步
NSUserDefaults.standardUserDefaults().synchronize()
}
存完了我们还是要取的,我们取出来的其实也是个NSData数据,然后需要把这个数据反序列化成一个图片:
//将二进制数据反序列化成图片
let image = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! UIImage
看完整的读取图片的代码:
func readImage(name:String) -> UIImage{
//获取二进制数据
let data = NSUserDefaults.standardUserDefaults().objectForKey(name) as! NSData
//将二进制数