json文件转为plist文件输出

从xx.json文件中读取JSON数据,写入到xx.plist文件中,实现代码如下:

    NSString *path = @"/Users/apple/Desktop/testJtoP/testJtoP/1_category.json";
    NSArray *array = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:path] options:NSJSONReadingMutableLeaves error:nil];
    
    BOOL state = [array writeToFile:@"/Users/apple/Desktop/1_category.plist" atomically:YES];
    if(state){
        NSLog(@"成功");
    }else{
        NSLog(@"失败");
    }

ps:需在模拟器上运行


writeToFile写入不成功的原因 :

If an array or dictionary contains objects that are not property-list objects, then you cannot save and restore the hierarchy of data using the various property-list methods and functions.

要存的不能为你自定义的对象,也不能是null



iOS的文件分类、存放路径及文件属性

关键数据

内容:用户创建的数据文件,无法在删除后自动重新创建,且会


路径:主目录/Documents

属性:不要设置"不备份"


管理:iOS系统即时遇到存储空间不足的情况下,也不会清除,同时会备份到iTunesiCloud


缓存数据


内容:可用于离线环境,可被重复下载重复生成,即时在离线时缺失,应用本身也可以正常运行


路径:主目录/Library/Caches


属性:默认


管理:在存储空间不足的情况下,会清空,并且不会被自动备份到iTunesiCloud


临时数据


内容:应用运行时,为完成某个内部操作临时生成的文件


路径:主目录/tmp


属性:默认


管理:随时可能被ios系统清除,且不会自动备份到iTunesiCloud,尽量在文件不再使用时,应用自己情况,避免对用户设备空间的浪费


离线数据

内容:与缓存数据类似,可以被重新下载和重建,但是用户往往希望在离线时数据依然能够托托地存在着


目录:主目录/Documents 主目录/Library/自定义的文件夹


属性:放于Documents下不需设置,放在自定义文件夹中需设置"不备份"


管理:与关键数据类似,即时在存储空间不足的情况下也不会清楚,应用自己应该清除已经不再使用的文件,以免浪费用户设备空间


1.Documents:

只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在<Application_Home>/Documents 目录下面,并将通过iCloud自动备份。

2.Library:

可以重新下载或者重新生成的数据应该保存在 <Application_Home>/Library/Caches 目录下面。举个例子,比如杂志、新闻、地图应用使用的数据库缓存文件和可下载内容应该保存到这个文件夹。

3.tmp:

只是临时使用的数据应该保存到 <Application_Home>/tmp 文件夹。尽管 iCloud 不会备份这些文件,但在应用在使用完这些数据之后要注意随时删除,避免占用用户设备的空间

注意: 一定要把要存的文件存到正确的位置,不然在审核的时候有可能因为违反苹果的规则而被拒!



参考:http://blog.csdn.net/android_ls/article/details/40121525

           http://blog.csdn.net/niitlcj/article/details/7494719  

猜你喜欢

转载自blog.csdn.net/mscinsidious/article/details/75571039