复杂对象写入文件--就是自己写的继承自NSObject类的子类

87 篇文章 0 订阅

#pragma mark 复杂对象--项目中很少用

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

    person.name = @"一心";

    person.gender = @"girl";

    

    //创建路径

    NSString *path = NSHomeDirectory();

    path = [path stringByAppendingString:@"/person"];

    

    //写入

    //1.创建可变data,用来存放归档数据

    NSMutableData *mutableData = [[NSMutableData alloc]initWithCapacity:10];

    

    //2.创建一个归档对象

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

    

    //3.归档--key值是随便给的,只是归档key和反归档key要一致。

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

    //4.完成归档

    [archiver finishEncoding];

    //5.写入文件

    [mutableData writeToFile:path atomically:YES];

    

    

    //读取

    //1.使用data对象获取数据

    NSData *data = [NSData dataWithContentsOfFile:path];

    

    //2.创建反归档对象

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

    

    //3.反归档

    Person *resultPerson = [unarchiver decodeObjectForKey:@"person"];

    

    //4.完成反归档

    [unarchiver finishDecoding];

    

    NSLog(@"路径:%@,编码前:%@,解码后:%@",path,person.name,resultPerson.name);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值