ios沙盒存储数据
① ios混沌之戒3存档在哪个文件夹
对于iOS系统的设备,应用程序的数据通常是存储在沙盒目录的Library文件夹中。
若想粗悔找到混沌之戒3游戏的存档文件,你可以通过以下步骤进行:
1. 使用iTunes或者iTools这些管理工具将iOS设备连接到电脑上。
2. 打开iTools,并进入“文件浏览器”;
3. 在罩前iTools的文件浏览器中,选择“应用程序”- “混沌之戒3”,找到存档所在的文件夹。
混沌之戒3的游戏存档通常保存在以下位置:
var/mobile/Containers/Data/Application/HuntersandMaze/Documents/
在该文件夹中,你物凳清应该能找到你的游戏数据和存档文件。请注意,由于iOS系统的文件保护机制,你只能查看和管理它们。任何未经授权更改或删除这些文件可能会导致应用程序不可用或数据丢失,请使用时务必小心。
② iOS数据存储(一)介绍
iOS本地化存储的数据保存在沙盒中。
(1) Documents :iTunes会备份该目录。一般用来存储需要持久化的数据。
(2) Library/Caches :缓存,iTunes不会备份该目录。内存不足时会被清除,应用没有运行时,可能会被清除。一般存储体积大、不需要备份的非重要数据。
(3) Library/Preference :iTunes同会备份该目录,可以用来存储一些偏好设置。
(4) tmp : iTunes不会备份这个目录,用来保存临时数据,应用退出时会清除该目录下的数据。
获取沙盒文件:
其中:
可以把字典或数组直接写入到文件中。另外, NSString 、 NSData 、 NSNumber 等类型,也可以使用 writeToFile:atomically: 方法直接将对象写入文件中,只是 Type 为空。
NSUserDefaults是轻量级存储,一般使用它来进行一些设置的记录,比如用户ID,开关是否打开等设置,通过键值对的方式记录设置,所以这个有时候也被称为偏好设置。
NSUserDefaults可以存储的数据类型包括: NSData 、 NSString 、 NSNumber 、 NSDate 、 NSArray 、 NSDictionary 。如果要存储其他类型,则需要转换为前面的类型,才能用NSUserDefaults存储。
也可以写成宏定义
③ iOS 本地写入、存储数据,沙盒机制
iphone沙盒中有4个文件夹,documents、tmp、app、library。
(1)、定位Document 目录
(2)、定位Library 目录
(3)、定烂磨尺位Caches 目录,游并Caches 目录位于Library目录下
使用只能定位Caches、Library、Documents目录, tmp目录,不能按照此方法获得,此时可以采用NSHomeDirectory定位到应用程序主目录,也就是Document 的上饥高一层目录:
NSString *temp = NSTemporaryDirectory();
获取沙盒根目录:NSHomeDirectory()
使用NSHomeDirectory()可以获取到沙盒的根目录,也就是Document的上一层。
利用NSHomeDirectory()我们可以获取沙盒中的任意文件的路径。
例如:获取tmp的路径如下所示:
如果创建文件夹,并创建子目录,如下:
关于目录/文件的其他操作:
④ ios监管模式存储路径
不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在态信橡本地缓存的数据等等。根据要存储的的数据的大小、存储性质以及存储类型,在iOS和Android中哪个都有多种存储方式。其中,iOS中的存储方式主要包括以下六类:
plist文件(属性列表)
preference(偏好设置帆旁)
NSKeyedArchiver(归档)
SQLite 3
CoreData
手动存放沙盒
一、沙盒机制
在研究存储方式之前,我们有必要先研究下这些文件会存储到什么地方去,这就需要我们了解iOS App特有的沙盒机制了。iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”,即沙盒其实就是一个App特有的一个文件夹,iOS下每个App都有自己特有的一个沙盒,其结构和目录特性都是一样的。
1.1 沙盒结构
既然沙盒就是一个文件夹,那就看看里面有什么吧。沙盒的目录结构如下图所示,每个App的沙盒都是由下图所示的四部分组成,每一部分中存放的数据和内容都是有一定的规范和性质的。该目录路径的获取方法是直接通过 NSHomeDirectory() 就得到和应用沙盒的坦蠢路径。
此外,每一个App还有一个Bundle目录,即“应用程序包”,该目录下 存放的是应用程序的源文件,包括资源文件和可执行文件。
⑤ iOS文件管理功能使用
2017年6月5日.苹果WWDC大会就宣布了一项众望所归的功能.Files文件管理应用.该应用是从iOS11.0系统以后的自带应用
出现Files应用以后.对开发者来说是很友好的!可以将开发侍肆皮者存储到沙盒中的数据通过Files直接浏览!
1.方便开发者及时查看数据.
2.针对用户来说能达到安卓系统一样的文件管理功能.并可直接对文件进行删除/分享/浏览等操作
在info配置中添加 Supports opening documents in place 并设置为 YES
一般也会添加 Application supports iTunes file sharing .并设置为 YES .可以在iTunes中直接查看
随后将我雹咐们生成的xls/图片/pdf/csv等文老差件保存至沙盒中
随后将上述的
NSString * muStr = @"待存储数据";
替换成即可
NSMutableString * muStr = [self getFileMustr];
存储到沙盒中以后即可在系统的Files应用中的我的iPhone中查看保存的文件数据
⑥ OC -- 应用数据储存方式
之前对数据之久化一直都是一知半解,只知道有几种方法,但不清楚这几种方法的区别.经过网上的查询和学习.写一下自己的心得体会.
数据持久化说白了就是将数据保存到本地的磁盘中.使得在应用程序重启后可以继续访问之前保存的数据.在ios中运用了很多的存储方式,一般我们用的方式分为以下5中:
沙盒是苹果的发明的内存管理机制,ios 程序默认情况下只能访问程序自身的目录,且这个目录被称为"沙盒"
应用程序包: 包含了所有的资源文件和可执行的文件.
Documents :保存应用运行时生成的需要数据持久化的数据,iTunes同步设备时会备份目录.例如游戏存档
tmp: 保存应用运行时所需的临时数据,使用完后就会将相应的文件从该目录删除,应用没有运行时,系统可能也会清除该文件下的数据.iTunes同步设备时,不会备份该目录.
Library / Caches : 保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录.-----一般存储体积大.不需要备份的非重要数据.
Library / Preference :保存应用的所有偏好设置,iOS的settings(设置)应用会在改目录中查找应用的设置信息.iTunes同步设备时会备份该目录.
虽然沙盒中有这么多文件夹,但是每个文件夹功能都是不相同的在上面我们也描述了,每次文件夹的功能.所以以后在存储数据的时候要注意存储的文件.一定要选择合适的文件夹.
获取相应文件夹位置的方法.
获取沙盒根目录
应用程序包:
Documents:(有两种获取方式)
TMP
Library/Caches:
Library/Preference
Plist文件
plist文件是将某些特定的类,通过XML的文件方式保存在目录中,并且plist 文件是存储在Documents文件夹下面的.
可以被序列化的类型只有如下几种:
1获取文件路径
2.存储
3.读取
4.注意
只有以上列出的类型才能使用plist文件存储。
存储时使用writeToFile: atomically:方法。 其中atomically表示是否需要先写入一个辅助文件,再把辅助文件拷贝到目标文件地址。这是更安全的写入文件方法,一般都写YES。
读取时使用arrayWithContentsOfFile:方法。
⑦ iOS 沙盒内的目录结构和作用
沙盒目录下有三个文件夹:Documents、Library、temp以及一个.app包!该目录下就是应用程序的沙盒,应用程序只能访问该目录下的文件夹!!!
1、Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据。该路径可通过配置实现iTunes共享文件。可被iTunes备份。
2、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
3、Library 目录:这个目录下有两个子目录:
Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应纳敏用程序的偏好.
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下搭销的文件夹,除Caches以外,都会被iTunes备份。
4、tmp 目录:这个目录用于存放临时文件,保存应用知茄游程序再次启动过程中不需要的信息。该路径下的文件不会被iTunes备份。
⑧ iOS开发之数据存储以及删除
iOS本地数据保存有多种方式,归纳如下:
本章不仅是学习多种数据存储方式,也可学习到其他知识点,下面就让我们详细来看:
具体方培梁核法为:
第一步:获得文件即将保存的路径,并生成在该路径下的文件:
第二步:往文件中写入/读取:
方法一:
方法配掘二:
方法三:
2.NSUserDefaults:是一个单例对象,在整个应用程序的生命周期中都只有一个实例。用渣旅来保存应用程序设置和属性、用户保存的数据。存储在沙盒的Library/Preference中,NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。写入和读取都比较简单,如下:
写入:
NSString *str = [userDefault objectForKey:@"gang"];
@interface Person : NSObject <NSCoding>//遵守NSCoding协议
@property (nonatomic,strong) NSString *name;
@property (nonatomic,assign) NSInteger age;
@end
解档操作:
同样调用NSCoder子类NSKeyedArchiver的方法unarchiveRootObject:toFile: 即可
[NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeObject:person forKey:@"person"];
[archiver encodeObject:bir forKey:@"bir"];
// 存档完毕(一定要调用这个方法)
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
NSData *undata = [NSData dataWithContentsOfFile:path];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
[unarchiver decodeObjectForKey:@"person"];
[unarchiver decodeObjectForKey:@"bir"];
// 恢复完毕
[unarchiver finishDecoding];
⑨ iOS-沙盒机制-整合篇
--沙盒内部:
--内部文件作用:
-- Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录。
苹果建议将在应用程序中浏览到的文件数据保存在该目录下。
-- Library:
Caches:
一般存储的是缓存文件,例如图片视频等,此目录下的文件不会再应用程序退出时删除。
*在手机备份的时候,iTunes不会备份该目录。
例如音频,视频等文件存放其中
Preferences:
保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,
而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。
*iTunes会自动备份该文件目录下的内容。
比如说:是否允许访问图片,是否允许访问地理位置......
-- tmp:临时文件目录,在程序重新运行的时候,和开机的时候,会清空tmp文件夹。
1).获取沙盒的Home目录
//获取根目录
NSString homePath = NSHomeDirectory();
NSLog(@"Home目录:%@",homePath);
2).获取沙盒的Documents目录
/ 获取Documents文件夹目录,
@param NSDocumentDirectory 获取Document目录
@param NSUserDomainMask 是在当前沙盒范围内查找
@param YES 展开路径,NO是不展开
@return test.txt文件的路径
/
NSString filePath =[[(NSDocumentDirectory,
NSUserDomainMask,YES)firstObject]:@"test.txt"];
3).获取Library文件路径
/
* 获取Library目录下文件路径
*
* @param NSLibraryDirectory 获取Library目录
* @param NSUserDomainMask 在当前的沙盒范围内查找
* @param YES 展开路径,NO不展开路径 *
* @return test.txt文件的路径
/ NSString filePath = [[(NSLibraryDirectory,
NSUserDomainMask, YES)firstObject]:@"test.txt"];
4).获取Library/Caches文件目录
/
* 获取Library目录下文件路径
*
* @param NSCachesDirectory 获取Library/Caches目录
* @param NSUserDomainMask 在当前的沙盒范围内查找
* @param YES 展开路径,NO不展开路径 *
* @return test.txt文件的路径
/NSString filePath = [[(NSCachesDirectory,
NSUserDomainMask, YES)firstObject]:@"test.txt"];
5).获取Library/Preferences文件目录
Preferences由系统维护,不需要我们手动的获取文件路径进行操作,而是需要借助NSUserDefault来操作,但是我们是可以获取到这个文件的。
/
* 获取Library目录下文件路径
*
* @param NSLibraryDirectory 获取Library目录
* @param NSUserDomainMask 在当前的沙盒范围内查找
* @param YES 展开路径,NO不展开路径 *
* @return test.txt文件的路径
/
NSString filePath = [[(NSLibraryDirectory,
NSUserDomainMask, YES)firstObject]:@"Preferences"];
6).获取tmp文件路径
/
* 获取tmp文件目录下的文件路径
*
* @return test.txt的文件路径
*/
NSString *filePath = [NSTemporaryDirectory():@"test.txt"]
7).向沙盒中写入文件
//向沙盒中写入文件
NSString *documentsPathW = (NSDocumentDirectory,NSUserDomainMask, YES)[0];
//写入文件
if (!documentsPathW) {
NSLog(@"目录未找到");
}else {
NSString *filePaht = [documentsPath :@"test.txt"];
NSArray *array = [NSArray arrayWithObjects:@"code",@"change", @"world", @"OK", @"", @"是的", nil];
[array writeToFile:filePaht atomically:YES];}
8).向沙盒中读取文件
//从沙盒中读取文件
NSString *documentsPathR = (NSDocumentDirectory,NSUserDomainMask, YES)[0];
NSString *readPath = [documentsPathR :@"test.txt"];
NSArray *fileContent = [[NSArray alloc] initWithContentsOfFile:readPath];
NSLog(@"文件内容:%@",fileContent);
1).获取应用程序包的路径
NSString *imagePath = [NSBundle mainBundle].resourcePath;
-- 程序包文件,包含了资源文件和可执行文件AppName.app
2).获取程序包中一个图片资源路径的方法(apple.png)
NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"apple" ofType:@"png"];
注意:
1.imageWithname这种加载的方式的是有缓存的,第二次在加载时直接从内存中取出图片,
这样的话效率更高,但是会使得内存变得越来越大,通常使用在,图片内存较小,
而且需要频繁使用的地方。
2.NSBundle mainBundle 是通过获取图片的全路径来加载图片的,
不会有缓存,但是这样每次就得重新加载,它也不会是在不是在使用完图片后就释放,
而是在下一次使用图片的时候才会释放,所以需要我们在使用完图片后,手动来释放内存。
3).将NSData类型的数据存储到本地(以图片为例)
⑩ 沙盒数据存储(SandBox)
沙滑敬隐盒是系统为了ios程序分配的可以读写数据的文件区域。
沙盒里面有三个重要的文件夹:
1documents:用于存储NSUesrDefults之外的数据。
2tmp用于存储临时数据,当数据不再需要的时候我们将删除数据。
3library:NSUserDefults的数据保存在LIbrary/稿游Preferences下面。
接下来举信厅几个沙盒应用的例子:
字符串使用沙盒进行存储