iosiOS 数据持久化存储encodeObject、decodeObjectForKey

关于数据持久化存储的方法很多,比如沙盒、归档等等。网上关于类似的文章也是数不胜数,这里分享一个本人经常使用的方法。

这种方法适用于登录账号需要保存记录账号中的部分基本信息,一般情况下都可适用。使用的时候我们建立一个UserModel 用于储存需要的数据,将如下的方法写进UserModel中。

在UserModel.m文件中

+ (instancetype)userModel

{

    UserModel *model = [NSKeyedUnarchiver unarchiveObjectWithFile:ArchivePath];

  model.vehicle = [NSKeyedUnarchiver unarchiveObjectWithFile:ArchiveVehcilePath];//另外一个存储模型,不需要的可以不用。

    return model;

}


1、数据存储  看代码很简单 都能看懂  将数据以键值对的形式存储在 NSCoder中

- (void)encodeWithCoder:(NSCoder *)aCoder

{

    [aCoder encodeObject:_mobile forKey:@"mobile"];

    [aCoder encodeInteger:_type forKey:@"type"];

    [aCoder encodeObject:_nickName forKey:@"nickName"];

    [aCoder encodeObject:_accessToken forKey:@"accessToken"];

    [aCoder encodeObject:_uid forKey:@"uid"];

    [aCoder encodeObject:_communicationType forKey:@"communicationType"];

}

2、数据取用 将存储在NSCoder中的数据 通过键值对方式取出

- (instancetype)initWithCoder:(NSCoder *)aDecoder

{

    _mobile = [aDecoder decodeObjectForKey:@"mobile"];

    _type = [aDecoder decodeIntegerForKey:@"type"];

    _nickName = [aDecoder decodeObjectForKey:@"nickName"];

    _accessToken = [aDecoder decodeObjectForKey:@"accessToken"];

    _uid = [aDecoder decodeObjectForKey:@"uid"];

    _communicationType =[aDecoder decodeObjectForKey:@"communicationType"];

    

    return self;

}




在Controller 中 我们需要定义一个指针指向我们储存的这个模型

UserModel *umodel = [UserModel userModel];

umodel.communicationType=qiyeVC.model.communicationType;//将communicationType这个数据以键值对形式存进NSCoder

根据自己的需求存储其他数据



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值