归档于结档

我们应该先明白(归档–结档),这两个有什么区别?
假设,我们创一个 Model 类,通过归档和结档,来让 Model 数据持久化,同时展示到表格上.
归档:把 Model 数据放到 dom 文件里,同时用加到数组里,展示到表格上.
结档:读取 dom 文件里的数据,展示到表格上

开始先了解路径

//先写个路径是 dom 的

    NSString *DomPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];

//再创建一个路径,创建文件.这里的 qq.data 可以是任意的,但尽量别起 xx.plist 或者是系统能读取的文件名
NSString *FilePath=[DomPath stringByAppendingPathComponent:@"qq.data"];
//这两句可以写成一句话
 [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:@"teacher.data"];
//一般应该把路径定位宏变量 名字自己取


 //归档代码
 // RootObject  是写入你要数据持久化的对象,加入 Model 的话,我们一般加入数组,方便数据的展示
 //归档数组
    [NSKeyedArchiver archiveRootObject:array toFile:Kfilepath];
    
//Model 在.h 文件中签订<NSCoding>协议,在.m 中,会提示你完成两个协议方法
//告诉系统归档哪些属性

-(void)encodeWithCoder:(NSCoder *)aCoder{
//aCoder enconde 不仅仅是 Object,同时有各种值,写的时候注意一一对应
//写Model的属性
    [aCoder encodeObject:_name forKey:@"name"];
    [aCoder encodeObject:_number forKey:@"number"];
}
//告诉系统结档哪些属性

-(instancetype)initWithCoder:(NSCoder *)aDecoder{
    self=[super init];
    if (self) {
    //归档哪些属性,结档哪些属性
        _name =[aDecoder decodeObjectForKey:@"name"];
        _number=[aDecoder decodeObjectForKey:@"number"];
    }
    return self;
}

//结档,一般在视图显示的时候调用,所以我们写在 viewdidload 
 array= [NSKeyedUnarchiver unarchiveObjectWithFile:Kfilepath];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值