美文网首页
ios开发 数据包含null时不能被存入plist文件的解决办法

ios开发 数据包含null时不能被存入plist文件的解决办法

作者: 百事星空 | 来源:发表于2018-05-10 10:50 被阅读18次

在开发过程中你可能会遇到这样的情况,想把请求回来的数据存到plist文件,可是发现死活存不进去,这个时候你可得注意了,仔细看看你请求回来的数据里有没有包含null,如果包含那恭喜你原因找到了(多数是此原因),因为苹果不允许此无效数据写进plist中,官方解释如下:

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.

解决办法:
1.让后台不要返null,可以返@“”;(不过这样不是很保险,一旦后台一不小心返null,你这边就又出错了,容错度太差)。
2.可以把请求到的数据先转成json串然后再存,取的时候再反转一次就好了;(避开了null不能存入的问题,容错度大,推荐)。
代码:

//获取路径
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString *fileName = [path stringByAppendingPathComponent:@"data.plist" ];

//存数据
NSString *json_str = [NSString dictionaryToJson:parameter];//字典转json
[json_str writeToFile:fileName atomically:YES encoding:NSUTF8StringEncoding error:nil];//写入
            
//取数据
NSString *str = [NSString stringWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:nil];
NSDictionary *temp_data= [NSDictionary dictionaryWithJSONString:str];//json转字典

相关文章

网友评论

      本文标题:ios开发 数据包含null时不能被存入plist文件的解决办法

      本文链接:https://www.haomeiwen.com/subject/kjtzrftx.html