把服务器返回数据写入沙盒,在沙盒中找不到代码如下:
[responseObject writeToFile:path atomically:YES];
然后查了下返回值,发现写入数据失败。
BOOL success = [responseObject writeToFile:path atomically:YES];
返回值为NO
查阅文档结果:returns NO if all the objects are not property list objects, since the resultant file would not be a valid property list.
说明如果要存储的对象中如果包含有非属性列表对象(plist对象),就会存储失败。
plist支持的数据类型有:Foundation框架中得数据类型NSNumber,NSString,
NSDate,NSArray,NSDictionary,BOOL, NSData。并且属性列表的根目录只能为NSDictionary或者NSArray。
plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,其内容为xml格式。它可以在程序运行期间动态的创建和读写,因此可以用于少量数据时候的数据持久化。
在iOS开发中遇到将服务器返回数据写入沙盒失败的问题,代码使用[responseObject writeToFile:path atomically:YES]返回NO。经查阅文档,得知原因在于写入对象包含非属性列表对象(plist),而plist只支持特定的Foundation框架数据类型如NSNumber,NSString等。为解决此问题,需要确保写入的数据符合plist文件格式。
1943





