IOS 本地储存(数据持久化)

来源:互联网 发布:python ggplot2 编辑:程序博客网 时间:2024/05/18 00:30

沙盒:其实对于每一个应用程序,都有唯一的一个本地文件与之对应,名字由系统随机生成.这个文件就是沙盒

 沙盒机制:沙盒机制其实就是,对每一个应用程序的资源起到一个保护作用,当前程序不允许访问其他程序的资源,其他程序也不允许访问当前程序的资源. 对于每一个 应用程序的沙盒文件中都包含以下文件: 1.documents :用来存储持久化数据文件,如果我们想对一个文件进行长久存数,就该放在该文件夹下 2/Library:   a)caches :缓存文件,存放已经下载完成的视频,音频,图片等等,一般我们会在该文件下创建Image,Audioes,Videos等文件存放图片,视频,音频等   b)prefrences:用于存储用户的偏好设置,比如用于判别程序是否是第一次启动的Plist文件就放在该目录下 3.tmp:存放未下载完成的视频,音频等.一般我们汇集哪个下载完成的视频,音频在手动移动到Caches XXXX.app:应用程序的包  ,应用程序的资源都来源于报,而包也是我们上传到appStore以及用户从appStore下载的文件 对于包内的资源我们不能进行修改,更不能删除 另外,对于以上文件都是由系统创建,不允许随意修改,删除  我们只能删除,修改自己创建的文件
 //获取docments文件路径    NSString *docmentsPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];//拼接文件路径 两种方法(这里的文件类型也可以.plist文件)  //1.    NSString *filePath=[docmentsPath stringByAppendingPathComponent:@"test.TxT"];//2.NSString   *filepath=[docmentsPath   stringByAppendingString:@"/test.TXT"]; // 写入   NSString *str=@"hello";  [str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

这样就可以将字符串类型的的数据存进test.TxT这个文件中了;

将字典存储成Plist文件 方法同上

//获取docments文件路径 NSString *docmentsPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];//字典//先将要存入的字典 创建好并且赋值NSDictionary *dic=@{@"key1":value1 ,@"key2":value2 };//    文件拼接// NSString *filePath=[docmentsPath stringByAppendingPathComponent:@"dic.plist"];//    //写入//[dic writeToFile:filePath atomically:YES];

data文件和 NSArray 类型的数据同字典一样

  //data    NSData*data=[str1 dataUsingEncoding:NSUTF8StringEncoding];    //文件拼接    NSString *filePath=[docmentsPath stringByAppendingPathComponent:@"data.TXT"];    //写入    [data writeToFile:filePath atomically:YES];

本地数据读取
1.获取文件路径

// 获取docment路径

 NSString *docmentsPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];// 拼接文件路径(找到dic.plist文件) NSString *filePath=[docmentsPath stringByAppendingPathComponent:@"dic.plist"];//读取(定义一个字典去接收它) NSDictionary *dic=[NSDictionary dictionaryWithContentsOfFile:filePath];

这样我们得到的字典dic就是之前存进去的字典了.

0 0
原创粉丝点击