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

在开发过程中你可能会遇到这样的情况,想把请求回来的数据存到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转字典
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容