iOS对象的归档与解档

来源:互联网 发布:贵州省广电网络 编辑:程序博客网 时间:2024/04/30 02:59

类的归档与解档

    Person *xiaoQ = [[Person alloc] init];    xiaoQ.name = @"xiaoQiang";    xiaoQ.age  = 19;    NSLog(@"%@",xiaoQ);

//NSKeyedArchiver 归档类

    if([NSKeyedArchiver archiveRootObject:xiaoQ toFile:PATH])    {        NSLog(@"归档成功");    }    //archiveRootObject--> encodeWithCoder(如果当前类没实现,会崩溃)

//NSKeyedUnarchiver 解档类

    Person *obj = [NSKeyedUnarchiver unarchiveObjectWithFile:PATH];    NSLog(@"obj = %@",obj);    //unarchiveObjectWithFile --> initWithCoder

//归档与解档也是协议代理的设计模式完成的

    //a. 系统完成部分    //1.系统定制NSCoding协议    //2.被代理者: NSKeyedArchiver    //b. 自定义部分    //3.代理者: 遵守协议、实现协议方法、传入代理对象“xiaoQ”

//遵守协议

@interface Person : NSObject<NSCoding>

//实现协议方法

//实现协议的归档方法- (void)encodeWithCoder:(NSCoder *)coder{NSLog(@"进入归档");//归档数据: 参数1:归档内容  参数2: 自定义key[coder encodeObject:_name forKey:@"name"];[coder encodeInteger:_age forKey:@"age"];}//实现协议的解档方法-(id)initWithCoder:(NSCoder *)aDecoder{NSLog(@"进入解档");Person *per = [[Person alloc] init];//解档数据: 参数1: 自定义key,对应归档的keyper.name = [aDecoder decodeObjectForKey:@"name"];per.age  = [aDecoder decodeIntegerForKey:@"age"];return per;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 海里遇到暗流怎么办贴吧 东海通忘记客户号怎么办 证券客户号忘了怎么办 热收缩机有空气怎么办 韩国国籍签证到期想回国怎么办 休闲裤裤脚长了怎么办 电大本科统考考不过怎么办 一案涉及两个法律关系怎么办 法院调解书被告不执行怎么办 电视cas授权已过期怎么办 网贷逾期被仲裁怎么办 word所选内容无效怎么办 wps批注不显示了怎么办 船舶挂靠船务公司去要怎么办 被螃蟹扎了肿了怎么办 手指被海鲜刺了怎么办 被海鲜刺进去了怎么办 手被海鲜扎了怎么办 环评设备写错了怎么办 物业对高空抛物怎么办 如果法官不公平判案我该怎么办? 民事案夸省审理案件不公平怎么办 积目头像未通过审核怎么办 电压不稳空调带不动怎么办 孩子吃了塑料珠怎么办 美的电压力锅打不开盖子怎么办 瓶盖打不开怎么办 瓶子是玻璃的 杯子口关错位了怎么办 大玻璃瓶的玻璃瓶盖拧不开怎么办 按压式洗发水瓶盖打不开怎么办 向下按压的瓶盖打不开怎么办 玻璃罐头开过了打不开怎么办 玻璃瓶的塑料盖子打不开怎么办 泡酒玻璃瓶盖子打不开怎么办 罐头的塑料瓶盖打不开怎么办 塑料水杯盖紧了怎么办 拧不开矿泉水瓶盖怎么办 新暖壶盖吸住了怎么办 暖瓶盖被吸住了怎么办 做面包和面粘手怎么办 面包面和稀了怎么办