美文网首页
存储数据 字典转模型

存储数据 字典转模型

作者: i爱吃土豆的猫 | 来源:发表于2020-02-29 22:27 被阅读0次

.h

#import <Foundation/Foundation.h>

@interface HJCacheClass : NSObject

///数据持久化保存的key
+ (void)mn_saveModel:(id)model key:(NSString *)key;

///获取数据持久化保存的Model  - 要传入model的Class - 内部进行yyModel转模型 
+ (id) mn_getSaveModelWithkey:(NSString *)key modelClass:(Class)modelClass;

///获取保存的模型数组
+ (id) mn_getSaveModelArrayWithkey:(NSString *)key modelClass:(Class)modelClass;

@end

.m

#import "HJCacheClass.h"
#import "YYModel.h"

@implementation HJCacheClass

+ (void)mn_saveModel:(id)model key:(NSString *)key{

    //model转json
    NSDictionary *productDic = [model yy_modelToJSONObject];

    /**
     NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型,而我们这里存储的是自定义的model类型-ProductModel,该类型不被支持
     */
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:productDic];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:key];

}


+ (id) mn_getSaveModelWithkey:(NSString *)key modelClass:(Class)modelClass{

    NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithData:data];
    return [modelClass yy_modelWithJSON:dict];
}

+ (id) mn_getSaveModelArrayWithkey:(NSString *)key modelClass:(Class)modelClass{

    NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];
    return [NSArray yy_modelArrayWithClass:[modelClass class] json:array];
}


@end

调用的地方

存储
HJPassportUserInfoModel *pUserInfoModel = [HJPassportUserInfoModel mj_objectWithKeyValues:bodyDict];
[HJCacheClass mn_saveModel:pUserInfoModel key:@"pUserInfoModel"];
取值
HJPassportUserInfoModel *pUserInfoModel = [HJCacheClass mn_getSaveModelWithkey:@"pUserInfoModel" modelClass:[HJrPassportUserInfoModel class]];
NSString *institutionId = pUserInfoModel.institutionId;
NSString *userId = pUserInfoModel.userId;

相关文章

  • 存储数据 字典转模型

    .h .m 调用的地方 存储 取值

  • oc 中的runtime 实践应用(三)

    字典转模型 在我们开发中,经常使用数据模型,模型分为:本地缓存模型、网络下载模型、以及一些临时存储模型,其中网络数...

  • 14-Swift中字典转模型

    字典转模型(初始化时传入字典) 字典转模型(利用KVC转化) 一、 普通的字典转模型: 二、利用KVC字典转模型:

  • Runtime(五) 实战

    实战一: 数据转模型 目标: 数据转模型考验知识点: 获取属性列表, 关联属性, 字典转模型 1, 获取类的属性列...

  • Swift 5.0 使用MJExtension 字典转模型

    记录下swift怎么使用MJExtension 字典转模型1.普通的字典转模型 2.字典数组嵌套转模型

  • model模型无法直接转model模型

    model模型无法直接转model模型 可以model转字典,字典再转model: NSDictionary *v...

  • 字典转模型,模型转字典

    //字典转模型 - (id)initWithDictionary:(NSDictionary*)dic{ self...

  • iOS Swift 字典转模型 模型存沙盒

    前言: 本篇接着上一篇iOS Swift 原生 字典数组转模型 JSONDecoder 对象存储 NSKeyedA...

  • iOS-模型

    在开发中,经常使用到模型,通常做法就是字典转模型 字典转模型的过程最好封装在模型内部 模型应该提供一个可以传入字典...

  • Swift 字典转模型

    这里探讨字典转模型中模型的类型单一模型模型嵌套 (模型中包含模型 || 模型中包含模型数组) Swfit的字典转模...

网友评论

      本文标题:存储数据 字典转模型

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