Object-c 缓存数据(plist)

一、相关知识


(⚠️ 需要直接看代码可跳到第二部分)

在ios中应用的缓存数据只能保存在 沙盒 中。
沙盒 : 每个应用程序自己的独立的存储空间。
沙盒中默认含有以下4个文件:

  • Documents
    iTunes备份和恢复的时候,会包括此目录。
  • Library
    Library/Caches:存放缓存文件,应用程序再次启动过程中需要的信息。
    Library/Preferences:包含应用程序的偏好设置文件。
  • tmp
    创建临时文件的目录,设备重启时,文件会自动被清除。
  • 应用.app
    应用程序的程序包目录,包含应用程序的本身。

以下是获取对应路径的方式:

// 获取到沙盒的根目录

NSString *homePath = NSHomeDirectory();

// 获取Documents目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,

NSUserDomainMask, YES);

NSString *docPath = [paths lastObject];

// 获取Library中的Cache

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES);

NSString *docPath = [paths lastObject];

j// 获取tmp路径

NSString *temp = NSTemporaryDirectory();

// 获取程序包文件路径

[[NSBundle mainBundle] resourcePath

二、缓存数据代码

这里以写入和读取plist为例:

/******** 写入plist *********/
NSArray *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

// 写入的文件路径(在沙盒的cache路径下)
NSString *indir = [[path lastObject] stringByAppendingString:@"/test.plist"];   

// 生成数组(NSMutableArray可变数组,NASArray不可变数组)
NSMutableArray *writeData=[[NSMutableArray alloc] init];
NSArray *arr = @[@"apple", @"banana", @"pear"];
[writeData addObjectsFromArray:arr];
// 写入文件
[writeData writeToFile:indir atomically:YES];

/********* 读取plist *********/
NSArray *readData=[NSArray arrayWithContentsOfFile:indir];
NSLog(@"读取plist:%@",readData);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容