归档与解档 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]结束解档

你可能感兴趣的:(归档与解档 archiver与Unarchiver)