iOS 利用归档(解档)保存(获取)用户信息

       说起用户信息保存问题,每个开发者应该都有很多不一样的见解。iOS提供了多种本地数据持久化方式,常用的有沙盒机制、本地数据库等。使用最多,也最简单方便的估计就是NSUserDefaults了。NSUserDefaults也是沙盒机制的一种,他的沙盒路径是Library->Preferences,因为大家用的都多,这里就不介绍了。处于安全性考虑,一般我们保存的用户信息并不会包括账号、密码这类敏感数据(这类信息可以保存到钥匙串,或者加密以后再保存),博主这里说的用户信息指的就是类似用户昵称、头像、性别等对安全性要求不高的数据。

一、创建用户信息数据模型

XPYUserModel.h

/// XPYBaseModel是博主之前创建的数据模型的基类,实现了YYModel协议(使用YYModel第三方库)
#import "XPYBaseModel.h"

NS_ASSUME_NONNULL_BEGIN

@interface XPYUserModel : XPYBaseModel <NSSecureCoding> // 归、解档操作必须实现NSCoding协议或者NSSecureCoding协议,我们当然使用保证数据安全性的NSSecureCoding

@property (nonatomic, copy) NSString *userId;
@property (nonatomic, copy) NSString *nickname;
@property (nonatomic, copy) NSString *age;

@end

NS_ASSUME_NONNULL_END

XPYUserModel.m


#import "XPYUserModel.h"

@implementation XPYUserModel

/// 必须实现的两个协议方法
- (void)encodeWithCoder:(nonnull NSCoder *)coder {
    [self yy_modelEncodeWithCoder:coder];
}

- (nullable instancetype)initWithCoder:(nonnull NSCoder *)coder {
    return [self yy_modelInitWithCoder:coder];
}

/// 必须实现supportsSecureCoding方法,返回YES
+ (BOOL)supportsSecureCoding {
    return YES;
}

@end

/// 因为博主使用了YYModel,所以两个协议方法中只是调用了YYModel的方法,若是自己写代码,如下
- (void)encodeWithCoder:(nonnull NSCoder *)coder {
    [coder encodeObject:self.userId forKey:@"userId"];
    [coder encodeObject:self.nickname forKey:@"nickname"];
    [
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值