关于数据持久化存储的方法很多,比如沙盒、归档等等。网上关于类似的文章也是数不胜数,这里分享一个本人经常使用的方法。
这种方法适用于登录账号需要保存记录账号中的部分基本信息,一般情况下都可适用。使用的时候我们建立一个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"];
}
- (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;
}
UserModel *umodel = [UserModel userModel];
umodel.communicationType=qiyeVC.model.communicationType;//将communicationType这个数据以键值对形式存进NSCoder
根据自己的需求存储其他数据