美文网首页
读写Model

读写Model

作者: _iceCoke | 来源:发表于2019-03-15 11:17 被阅读0次
#import "ZHL_Model.h"

@interface LoginSucessModel : ZHL_Model
@property(strong, nonatomic)NSString *access_token;
@property(strong, nonatomic)NSString *token_type;
@property(strong, nonatomic)NSString *refresh_token;
@property(strong, nonatomic)NSString *expires_in;
@property(strong, nonatomic)NSString *scope;

+ (void)saveModel: (LoginSucessModel *)model;
+ (LoginSucessModel *)getModel;
+ (void)clearInfo;

@end

#define kLoginSucessModel  @"LoginSucessModel"
#import "LoginSucessModel.h"

@implementation LoginSucessModel
static LoginSucessModel* _instance = nil;
+ (instancetype)model {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _instance = [[super allocWithZone:NULL] init];
    });
    return _instance;
}

+ (id)allocWithZone: (struct _NSZone *)zone {
    return [self model];
}

- (id)copyWithZone: (struct _NSZone *)zone {
    return [[self class] model];
}

- (id)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super init]) {
        self.access_token = [aDecoder decodeObjectForKey:@"access_token"];
        self.token_type = [aDecoder decodeObjectForKey:@"token_type"];
        self.refresh_token = [aDecoder decodeObjectForKey:@"refresh_token"];
        self.expires_in = [aDecoder decodeObjectForKey:@"expires_in"];
        self.scope = [aDecoder decodeObjectForKey:@"scope"];
    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)aCoder; {
    [aCoder encodeObject:self.access_token forKey:@"access_token"];
    [aCoder encodeObject:self.token_type forKey:@"token_type"];
    [aCoder encodeObject:self.refresh_token forKey:@"refresh_token"];
    [aCoder encodeObject:self.expires_in forKey:@"expires_in"];
    [aCoder encodeObject:self.scope forKey:@"scope"];
}



+ (void)saveModel: (LoginSucessModel *)model {
    [[self model] saveModel:model];
}

- (void)saveModel: (LoginSucessModel *)model {
    NSData *userData = [NSKeyedArchiver archivedDataWithRootObject: model];
    iceUserDefaultsSetValueForKye(userData, kLoginSucessModel);
    iceUserDefaultsSynchronize;
}

+ (LoginSucessModel *)getModel {
    return [[self model] getModel];
}

- (LoginSucessModel *)getModel {
    id data = iceUserDefaultsValueForKye(kLoginSucessModel);
    if ([data isKindOfClass:[NSData class]]) {
        LoginSucessModel *model = [NSKeyedUnarchiver unarchiveObjectWithData:data];
        return model;
    }
    return nil;
}

+ (void)clearInfo {
    [[self model] clearInfo];
}

- (void)clearInfo {
    LoginSucessModel *emtyModel = [LoginSucessModel model];
    emtyModel.access_token = nil;
    emtyModel.token_type = nil;
    emtyModel.refresh_token = nil;
    emtyModel.expires_in = nil;
    emtyModel.scope = nil;
    [self saveModel:emtyModel];
}

@end

相关文章

  • 读写Model

  • es java api整体说明

    elasticsearch读写文档概述 data replication model定义 (该model基于pri...

  • wecenter学习笔记-Model读写分离

    该文是wecenter学习笔记的一部分 Model读写分离 所有的具体的Model都从AWS_MODEL派生。 A...

  • JMM简介

    Java Memory Model(JMM)java内存模型,区别与java内存结构。JMM定义了一套在多线程读写...

  • MVP入门-快速实践

    M-Model:处理业务逻辑,主要是数据读写,与后台通信等等。V-View:处理UI控件P-Presenter:主...

  • 5.创建模块boot-web

    文章到这里我们创建应用模块boot-web,用它依赖boot-dao和boot-model,去实现几个具体的读写操...

  • Python3 CookBook学习笔记 -- 文件与IO

    1. 读写文本数据 打开一个文本文件:open('somefile.txt', model),需要注意: 文件的读...

  • vuex-流程配置

    定义:集中管理组件数据状态的组件,组件对这些数据进行读写操作 强制对v-model类型转换为数字类型 安装 vue...

  • 抓取淘宝数据实例

    简单demo curl.php是封装的一个curl请求的一个函数 model.php是数据库的读写操作 list....

  • 【iOS开发】MJExtension的使用

    JSON 转 Model JSONString 转 Model Model 中包含其他 Model Model 中...

网友评论

      本文标题:读写Model

      本文链接:https://www.haomeiwen.com/subject/rmklmqtx.html