归档与解档 archiver与Unarchiver

  • 自定义的类需要实现NSCoding协议中的initWithCoder:和encodeWithCoder:方法

    • initWithCoder:中使用[coder encodeXXX:property forKey:@“XXX”]归档
    • encodeWithCoder:中使用 property = [coder decodeXXXForKey:@“XXX”];return obj;解档
  • 系统对象可以直接使用

  • 单个对象归档与解档

    • 使用[NSKeyedArchiver archivedDataWithRootObject:obj]归档为data或者使用[NSKeyedArchiver archiveRootObject:obj toFile:path]直接归档并写入文件
    • 使用[NSKeyedUnarchiver unarchiveObjectWithData:data]解档数据或者[NSKeyedUnarchiver unarchiveObjectWithFile:file]从文件中解档
  • 批量归档与解档

    • 归档

      • 使用[[NSKeyedArchiver alloc]initForWritingWithMutableData:dataM]方法以 NSMutableData对象为参数创建NSKeyedArchiver对象
      • 重复使用[archiverObj encodeXXX: forKey:@“XXX”]归档所有对象
      • [archiverObj finishEncoding]结束归档,dataM包含被归档对象的数据
    • 解档

      • 使用[[NSKeyedUnarchiver alloc] initForReadingWithData:data]创建NSKeyedUnarchiver对象
      • 重复使用[UnarchiverObj decodeXXXForKey:@“XXX”]解档对象
      • [UnarchiverObj finishDecoding]结束解档
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容