沙盒路径下存储和读取数据 缓存文件、偏好设置文件、plist文件

2024-05-14 20:48

本文主要是介绍沙盒路径下存储和读取数据 缓存文件、偏好设置文件、plist文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、plist存储
// 获取应用文件夹路径
NSString *homePath = NSHomeDirectory();
//获取document文件夹的路径
//函数的作用:在某个范围内搜索一个文件夹的路径
//directory:获取哪个文件夹
//NSUserDomainMask:在用户的范围内查找
//expandTilde:YES:展开 。No,不展开,~会把沙盒路径替换
NSString *docPath = NSSeachPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES)[0];//文件所在的文件夹路径
//拼接上文件
NSString *filePath = [docPath stringByAppendingPathComponent:@“arr.plist”];
//创建数组,将数组写入文件
NSArray *arr = @[@“12”,@“34”];
[arr writeToFile:filePath atomically:YES];
//从文件中读取出数组
NSArray *arr = [NSArray arrayWithContentsOfFile:filePAth];
2、偏好设置存储
// 偏好设置: [NSUserDefaults standardUserDefaults] 专门用来偏好设置存储
// 偏好设置:快速进行一些键值对的存储,底层封装方式:就是包装了一个字典
// 偏好设置:不需要关心文件名
// 偏好设置的注意点: ios8 之前,通常我们需要做一个操作,同步:把缓存的数据同步到硬盘
//写入到偏好设置
[[NSUserDefaults standardUserDefaults] setObject:@“xiaoming” forKey:@“name”];
//ios8之前一定要做同步:把缓存的数据及时同步到硬盘
[[NSUserDefaults standardUserDefaults]synchronize];

//读取偏好设置
NSString *name = [[NSUserDefaults standardUsersDefaults] objectForKey:@“name”];

3、自定义对象归档
遵守NSCoding协议
归档的时候encodeWithCoder方法重写
解档的时候initWithCoder方法重写
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_name forKey :@“name”];
[aCoder encodeObject:_age forKey:@“age”];
}

解档文件
-(id)initWithCoder:(NSCoder *)aDecoder
{
//如果父类没有遵守<NSCoding>协议,就不需要调用InitWithCoder
if(self = [super init])
{
_name = [aDecoder decodeObjectForKey:@“name”];
_age = [aDecoder decodeObjectForKey:@“age”];
}
return self;
}
//归档和解档的使用
p.name = @“xiom”;
p.age = 10;
//获取文件全路径
NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)[0];
//拼接文件名
NSString *filePath = [cachePath stringByAppendingPathComponent:@“person.data”];
//一定对象如果需要归档,必须要遵守<NSCoding>实现encodeWithCoder
//归档
[NSKeyedArchive archiveRootObject:p toFile:filePath];

//解档
Person *p = [NSKeyedUnarchiver unachiveObjectWithFile:filePath];



这篇关于沙盒路径下存储和读取数据 缓存文件、偏好设置文件、plist文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989815

相关文章

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

Apache Ignite缓存基本操作实例详解

《ApacheIgnite缓存基本操作实例详解》文章介绍了ApacheIgnite中IgniteCache的基本操作,涵盖缓存获取、动态创建、销毁、原子及条件更新、异步执行,强调线程池注意事项,避免... 目录一、获取缓存实例(Getting an Instance of a Cache)示例代码:二、动态

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os