沙盒路径下存储和读取数据 缓存文件、偏好设置文件、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

相关文章

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4