文档章节

iOS 数据缓存

不孤独的美食家
 不孤独的美食家
发布于 2016/09/05 20:53
字数 893
阅读 67
收藏 0

如何利用Xcode查看真机归档的数据

  • 第一步,在Xcode的window目录下,选择Devices,如下图

图片

  • 第二步, 点击Devices,截图如下

图片

  • 第三步, 选择自己的那个APP

图片

  • 第四步, 操作如下图

图片

  • 第五步, 按照图中选中操作即可

图片

  • 第六步, 下载下来的缓存数据

输入图片说明

  • 第七步,右击,单击显示包内容

输入图片说明

  • 第八步,包中显示的内容

输入图片说明

  • 第九步, 找到我们缓存的模型数据库

输入图片说明

  • 第十步,用相应的数据库打开

输入图片说明

模拟器与真机的缓存路径

  •  一   模拟器缓存路径
    
NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
   BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:file];
   if (ret) {
       YS_DBG(@"模拟器上-----TACityModel模型数据归档成功");
   }else{
       YS_DBG(@"模拟器上-----TACityModel模型数据归档失败");
   }

  •  二   真机缓存路径
    
 NSString *Path = NSHomeDirectory();
    //注意,在真机归档时,请在拼接路径时加上Documents/,指定写入到Documents文件夹下,否则提示归档失败
    NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:totalPath];
    if (ret) {
        YS_DBG(@"真机上-----TACityModel模型数据归档成功");
    }else{
        YS_DBG(@"真机上-----TACityModel模型数据归档失败");
    }

  • 三 为了方便真机和模拟器都可以使用,可以使用如下的宏
#if TARGET_IPHONE_SIMULATOR
    
  
#elif TARGET_OS_IPHONE
    

#endif

  • 四 综合以上四点,写成一个归档的方法
#pragma mark -  根据指定的key,归档指定的模型数组

+ (void)archiveOTAContryModelArray:(NSMutableArray *)modelArray key:(NSString *)key
{
#if TARGET_IPHONE_SIMULATOR
    
    NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:file];
    if (ret) {
        YS_DBG(@"模拟器上-----TACityModel模型数据归档成功");
    }else{
        YS_DBG(@"模拟器上-----TACityModel模型数据归档失败");
    }

#elif TARGET_OS_IPHONE
    
    NSString *Path = NSHomeDirectory();
    //注意,在真机归档时,请在拼接路径时加上Documents/,指定写入到Documents文件夹下,否则提示归档失败
    NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    BOOL ret = [NSKeyedArchiver archiveRootObject:modelArray toFile:totalPath];
    if (ret) {
        YS_DBG(@"真机上-----TACityModel模型数据归档成功");
    }else{
        YS_DBG(@"真机上-----TACityModel模型数据归档失败");
    }
#endif
}

截图如下

输入图片说明

  • 五 既然有了归档的方法,那肯定有解归档的方法,如下
#pragma mark -  根据指定的key,解归档指定的模型数组

+ (NSMutableArray *)unArchiveOTAContryModelArrayWithkey:(NSString *)key
{
#if TARGET_IPHONE_SIMULATOR
    
    NSString *file        = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:file];
    return array;
    
#elif TARGET_OS_IPHONE

    NSString *Path        = NSHomeDirectory();
    //注意,在真机归档时,请在拼接路径时加上Documents/,指定写入到Documents文件夹下,否则提示归档失败
    NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:totalPath];
    return array;
#endif
}

截图如下

输入图片说明

  • 六 归档和解归档的方法都有了,那么肯定还会有删除这个模型数据库的方法
#pragma mark -  根据指定的key,删除指定的模型数组
+ (void)deleteOTAContryModelArrayWithkey:(NSString *)key
{
#if TARGET_IPHONE_SIMULATOR
    
    NSString *file        = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:[NSString stringWithFormat:@"%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    [MessageUtil_ deleteFileWithPath:file];
    
#elif TARGET_OS_IPHONE
    
    NSString *Path = NSHomeDirectory();
    //注意,在真机归档时,请在拼接路径时加上Documents/,指定写入到Documents文件夹下,否则提示归档失败(模拟器上路径前面不需要Documents/,真机才要)
    NSString *totalPath=[Path stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%zi%@.db",[PassFeedAppDelegate sharedInstance].authenticatedMember.uid,key]];
    [MessageUtil_ deleteFileWithPath:totalPath];
#endif
}

截图如下

输入图片说明

  • 七 好了,早下班了,今天的问题也都解决了,该回家啰!欢迎大批评指正!再见!

© 著作权归作者所有

不孤独的美食家
粉丝 88
博文 159
码字总数 48705
作品 1
长沙
高级程序员
私信 提问
[C++][IO]fstream用法

fstream用法 1. 打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access); 参数: filename:  要打开的文件...

guitar_zp
2011/08/09
0
0
C++文件读写详解(ofstream,ifstream,fstream)

在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结: 这里主要是讨论fstream的内容: [java] view pl...

涩女郎
2015/08/19
56
0
C++文件操作详解(ifstream、ofstream、fstream)

C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 ...

JORDANSG
2012/12/02
186
0
iOS渲染-将视频原始数据(RGB,YUV)渲染到屏幕上

需求 在做如美颜,滤镜等功能时,我们不能使用相机原生的,而是需要通过其他方式将视频原始帧数据如RGB,NV12等等渲染到iOS界面上. 实现原理 利用OpenGL完成高效的渲染功能.本例中仅提供简单流程...

小东邪啊
06/18
0
0
2018 iOS 面试题大全(补充完整版)

原文地址:2018 iOS 面试题大全 由于原作者并没有继续更新,这里我转过来继续更新下 这个栏目将持续更新--请iOS的小伙伴关注! 1、iOS 应用导航模式有哪些? 2、iOS 中持久化方式有哪些? 3、...

Theendisthebegi
2018/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
5
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部