关于plist文件路径的两种读写方式

来源:互联网 发布:软考项目管理 知乎 编辑:程序博客网 时间:2024/05/20 06:31

       一些程序在运行时,通常在一些情况下需要从plist或者其他形式的文件中读取数据,不过一般不同的代码都会有所区别。

       以下是我所遇到的两种情况。

       第一种:老师讲相册的时候静态传入数据,直接把几张图片放在工程里,在plist中直接写文件名。然后用数据模型+懒加载的方式进行展示。其中加载图片(读取plist)过程的代码如下:
        NSString *path=[[NSBundle mainBundle]pathForResource:@"Property List" ofType:@"plist"];        NSURL *fileURL=[NSURL fileURLWithPath:path];        NSArray *tempArray=[NSArray arrayWithContentsOfURL:fileURL];//懒加载加进数组的过程

       不过核心的还是第一句。

       但是当我动态增加数据在写入plist的时候,无法用上面的路径形式写入,几次写入均失败。

        [_arr writeToURL:fileURL atomically:YES ];
      看到同学用的另一种方式也就是第二种方式:

      如下:

        NSString *pather=@"/Users/administrator/Desktop/Mac文稿/iOSDay4/iOSday4Task/iOSday4Task/List.plist";        NSURL *pather2=[NSURL fileURLWithPath:pather];                [_arr writeToURL:pather2 atomically:YES ]; 
     发现这个时候是成功的。而且读文件也没有问题

     两种主要的区别,上面的是相对路径,下面的是详细路径(绝对路径)。在网上找了一些资料,并未给出详细的解释。

     我的猜想是,像这种动态写入plist的形式,还是需要详细路径的。当然或许是因为我用的电脑端的模拟器,需要详细路径,待真机测试第一种方式是否可写。

0 0
原创粉丝点击