ios开发沙盒存储

来源:互联网 发布:数据库中游标的用法 编辑:程序博客网 时间:2024/05/09 08:48

在我们实际开发的过程中,经常会遇到数据持久化的问题。因为一般在代码中声明的变量,在程序结束运行之后就不复存在了,或者说是重置了,这样当我们需要保持一定的状态的时候就要用到数据持久化。说到数据持久化,我们就得了解一下沙盒。

PS:虚拟机的文件路径跟手机的是不一样的哦。

(1)沙盒其实就是一个文件夹,沙盒文件夹的结构如下:

"应用程序包"DocumentsLibrary    Caches    Preferencestmp


1."应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件。我们可以通过如下代码查看“应用程序包”的目录。

  NSString *path = [[NSBundlemainBundle]bundlePath];


2.Documents:最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适合存储重要数据。我们可以通过如下代码查看Documents的目录。

    NSString *docPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObject ;


3.Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。

   NSString *path =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES).firstObject;  


4.Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。


5.tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。

   NSString *path =NSTemporaryDirectory() ;


下面展示如何向Document进行写入和读取操作,如果想对不同的文件进行操作,更换相应的路径即可。

//写入Document(NSDictionary格式)-(void) writeToDocument{    //获取Document的路径    NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject ;        if(!docPath)    {        NSLog(@"Document目录未找到") ;    }        //创建一个字典,当然也可以是其他类型的数据文件    NSDictionary *dict = @{@"name":@"zxs",@"sex":@"fmale"} ;    //创建dictFile.json文件    NSString *dictPath = [docPath stringByAppendingPathComponent:@"dictFile.json"] ;        //向dictFile.json写入NSDictionary的文件    [dict writeToFile:dictPath atomically:YES] ;}//读取文件-(void) readFromDocument{    //获取Document的路径    NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject ;        //找出刚才创建的文件的路径    NSString *dictPath = [docPath stringByAppendingPathComponent:@"dictFile.json"] ;    //利用刚才创建的文件初始化字典    NSDictionary *dicts = [NSDictionary dictionaryWithContentsOfFile:dictPath] ;        NSLog(@"%@",dicts) ;        //取出字典中的数据    NSLog(@"姓名:%@",[dicts objectForKey:@"name"]) ;    NSLog(@"性别:%@",[dicts objectForKey:@"sex"]) ;}


原创粉丝点击