美文网首页
归档与解档

归档与解档

作者: 忘惘的小风扇 | 来源:发表于2016-07-02 19:54 被阅读116次

归档:将对象按照一定的格式保存到文件中;
解档:从文件中还原对象的过程


官方类的归档与解档方式一:

归档:
Bool ret = [NSKeyedArchiver archiveRootObject:arr toFile: @"/Users/qianfeng/Desktop/arr.archive"];
通过ret来判定是否存档成功
解档方法一:
NSArray * arr1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/qianfeng/Desktop/arr.archive"]; 
解档方法二:
NSData *data = [[NSData alloc] initWithContentsOfFile:@"/Users/qianfeng/Desktop/arr.archive"];
NSArray *arr2 = [NSKeyedUnarchiver unarchiveObjectWithData:data];

官方类的归档与解档方法二:

归档:
//1.创建一个空的二进制数据对象
NSMutableData *mData = [NSMutableData data];
//2.创建归档对象
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:mData];
//3.将数据写入归档的对象
[archiver encodeObject:name forKey:@"Name"];
[archiver encodeInteger:age forKey:@"Age"];
[archiver finishEncoding];//4.结束归档


//读取文档数据
NSData *data = [NSData dataWithContentsOfFile:@"/Users/qianfeng/Desktop/test.archive"];
//创建解档对象
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
    
//根据key值解档数据
NSString *str = [unarchiver decodeObjectForKey:@"Name"];
NSInteger age1 = [unarchiver decodeIntegerForKey:@"Age"];
//结束解档
[unarchiver finishDecoding];

注意:至所以某些官方类能进行归档、解档,是因为他们遵守了NSCoding协议,并实现了其中的方法

@protocol NSCoding
归档的时候自动调用encodeWithCoder
- (void)encodeWithCoder:(NSCoder *)aCoder;
解档的时候自动调用initWithCoder
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder;
@end

自定义的归档、解档
自定义的归档、解档,需要遵守NSCoding协议,并实现协议中的方法
自定义的归档,就是针对类中的成员变量分别进行归档;
如果自定义类中包含其他的自定义类,其他的自定义类也需要遵守NSCoding协议;

相关文章

  • ios中Swift的归档与解档

    ios中Swift的归档与解档 归档 解档 init()方法 设置属性

  • 归档与解档

    归档:将对象按照一定的格式保存到文件中;解档:从文件中还原对象的过程 官方类的归档与解档方式一: 官方类的归档与解...

  • 归档解档

    归档 解档

  • iOS Runtime应用之自动归档

    归档 解档 end

  • 归档/解档

    一、对系统类进行归档/解档 第一种:对集合类对象进行归档/解档 归档: 解档 方法(1) 方法(2) 第二种:非集...

  • MJExtension归档失败

    MJExtension归档解档奔溃 ,YYMode 归档解档正常的对比由于作者懒得截图,只说明是在[NNObjce...

  • 归档、解档

    1.创建类 ZFPerson,遵循协议NSCoding @interface ZFPerson : NSObjec...

  • 归档/解档

    1.沙盒路径 注意: 0.提供一个在真机情况下查找到沙盒的办法Xcode -> window ->devices找...

  • 归档 & 解档

    1.什么是 归档 和 解档 数据本地存储持久化的一种。归档:对象的序列化,通过某种格式把对象保存成本地文件。解档:...

  • 归档、解档

    我对归档和解档的理解是 归档就是把要保存的内容转成Data之后写入指定的路径中。解档就是把指定路径下的Data转成...

网友评论

      本文标题:归档与解档

      本文链接:https://www.haomeiwen.com/subject/gevqjttx.html