A,归档解档(多针对于模型或者数组,利用MJExtension)

1,先在model里的.m文件写上MJCodingImplementation

2,再进行模型归档:

#define APP_DOCUMENT                [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]

#define DocumentPath(path)          [APP_DOCUMENT stringByAppendingPathComponent:path]

[NSKeyedArchiver archiveRootObject:模型或者数组 toFile:DocumentPath(@"freeOrderSelectedCar")];

3,解档

NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"freeOrderSelectedCar"];

模型或者数组  = [NSKeyedUnarchiver unarchiveObjectWithFile:file];

/* 实现下面的方法,说明哪些属性不需要归档和解档 */

+ (NSArray *)mj_ignoredCodingPropertyNames{

return @[@"name"];

}

B,保存数组或字典到本地(json数据的,如果是模型,则用上面的归档)

1,   字典转成二进制数据存到本地

NSData *resultData = [NSJSONSerialization dataWithJSONObject:字典或数组 options:NSJSONWritingPrettyPrinted error:nil];

[resultData writeToFile:DocumentPath(@"areas.plist") atomically:YES];

2, 读取本地数据

NSData *data = [NSData dataWithContentsOfFile:DocumentPath(@"areas.plist")];

//需要判断数据为nil情况,因为如果为nil则无法转成字典的

if (!isEmpty(data)) {

NSDictionary * resultDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];或

NSArray * resultArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

}

C,偏好设置(保存轻量级的数据)

//从沙盒里面读取键“key”对应的内容“值”

[[NSUserDefaults standardUserDefaults] objectForKey:<#key#>];

//把内容"value"存入到沙盒,对应的键是“key”

[[NSUserDefaults standardUserDefaults] setObject:<#value#> forKey:<#key#>];

//同步到沙盒;必须要写,不写会产生不可预测的Bug

[[NSUserDefaults standardUserDefaults] synchronize];

D,链表(针对数据量大,且为Json格式)(如果数据十分重要不容缺失则最好采用链表存储)(采用STDBManager库,如果找不到这个库,可以留下联系方式。后面我会放到github上面

1,初始化数据库链表

- (instancetype)init

{

self = [super init];

if (self) {

// 创建缓存数据库表

[[STDatabaseManager sharedInstance] createTableWithName:TABLE_CACHE];

}

return self;

}

2,存储数据到链表(把json格式的数据存入的)

if (!isEmpty(json)) {

[[STDatabaseManager sharedInstance] putJsonObject:json withId:@“Key” intoTable:TABLE_CACHE];

}

3,读取数据(如果需要模型或模型数组,可以拿到的json数据转为模型或模型数组)

NSObject* data = [[STDatabaseManager sharedInstance] getJsonObjectById:@“Key” fromTable:TABLE_CACHE];

最新文章

  1. 【转】单调队列优化DP
  2. ubunto安装pycharm
  3. 如何用参数化SQL语句污染你的计划缓存
  4. iOS推送失败的可能问题汇总
  5. C#引用类型与值类型的比较
  6. iOS第三方(显示视图的宽度高度)- MMPlaceHolder
  7. Web.config配置文件详解(新手必看)
  8. Python算法之---冒泡,选择,插入排序算法
  9. LINQ Enumerable 续 II
  10. python 如何重新加载有修改过的模块(module)
  11. Struts2_配置文件
  12. ERP系统
  13. iOS动画学习
  14. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 5.在控制节点上部署计算服务Nova
  15. Android ScrollView和ListView联用,且ListView可以下拉刷新和上拉加载
  16. wordpress文章页两侧添加分页导航箭头
  17. java常用设计模式四:观察者模式
  18. 《Effective C++》 目录:
  19. stl源码剖析 详细学习笔记 算法(1)
  20. SSDT表概念具体解释

热门文章

  1. CentOS/Linux 网卡设置 IP地址配置永久生效
  2. 安装 rbbitMQ redis mongo的三个扩展
  3. push images to private repostory
  4. Could not resolve dependencies for project
  5. C++ namespace浅析
  6. redux sample with redux source code
  7. XMLHttpRequest的withCredentials属性
  8. BestCoder Round #81 (div.2) 1004 String(动态规划)
  9. 微信公众号实现zaabix报警2017脚本(升级企业微信后)
  10. ie tbody table 兼容方法