美文网首页
iOS归档与反归档

iOS归档与反归档

作者: 就叫醍醐灌顶吧 | 来源:发表于2017-07-26 15:06 被阅读0次

    做iOS开发已经快3年了,一直没有一个书写的习惯,那就从今天开始,一点点把所学过的知识记录下来吧.

    归档可以对自定义对象进行存储操作

    首先自定义一个person对象

    @interface Person : NSObject<NSCoding>

    @property (nonatomic)NSString *name;

    @property (nonatomic)NSInteger age;

    @property (nonatomic)NSString *sex;

    @end

    要遵守NSCoding协议

    接下来是代码部分

    //创建一个person对象

    Person *person = [[Person alloc]init];

    person.name = @"王韬";

    person.sex = @"男";

    person.age = 25;

    NSLog( @"%@",person.name);

    NSString *path = NSHomeDirectory();

    path = [path stringByAppendingString:@"Singel.plist"];

    //2:准备存储数据对象(用可变数组进行接收)

    NSMutableData *data = [NSMutableData new];

    //3:创建归档对象

    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];

    //4:开始归档

    [archiver encodeObject:person forKey:@"person"];

    //5:完成归档

    [archiver finishEncoding];

    //6:写入文件

    BOOL result = [data writeToFile:path atomically:YES];

    if (result) {

    NSLog(@"1111");

    }

    //反归档

    //1:获取解档路径

    NSData *MyData = [NSData dataWithContentsOfFile:path];

    //2:创建反归档对象

    NSKeyedUnarchiver  *unarchiver= [[NSKeyedUnarchiver alloc]initForReadingWithData:MyData];

    //3:反归档

    Person *aper = [Person new];

    aper = [unarchiver decodeObjectForKey:@"person"];

    //4:结束归档

    [unarchiver finishDecoding];

    NSLog(@"%@",aper.name);

    相关文章

      网友评论

          本文标题:iOS归档与反归档

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