————————————————
版权声明:本文为CSDN博主「枫叶砂」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fys_0801/article/details/89555810
保存后台返回的一个字典数组,使用NSUserDefaults存储时,遇到了“
Attempt to insert non-property list object”的错误而导致的闪退。
在仔细查看了,存储的数据后,赫然发现这个数组中的字典中有的字段值是空的。
在序列化的时候,这个空值引发了这个错误闪退。
针对这种情况,我们在存储数据的时候先对其进行nsdata转化,而且再进行NSUserDefaults存储。
NSData *data = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:nil];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"key"];
在使用NSUserDefaults存储包含空字段的字典数组时,遇到闪退问题。原因是空值导致序列化错误。解决方案是在存储前将数据转化为NSData,并使用NSJSONSerialization进行处理。

3355

被折叠的 条评论
为什么被折叠?



