iOS NSUserDefaults在存储一些数据的时候报错 A
2017-04-24 本文已影响111人
bc3d3e66fba3
天空.jpg
1.了解NSUserDefaults以及可以直接存储的数据类型
NSUserDefaults是一个单例,在整个程序中只有一个实例对象,它可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。
NSUserDefaults可以存储哪一些类型的数据,如下:
NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL.
2.存储报错
当我在往NSUserDefault里存储下面的数据的时候,就给我报了 [User Defaults] Attempt to set a non-property-list object 的错误,
(
{
adlink = "Mbranklist/paying_activity?01";
consumetype = "";
deliveryid = 1;
index = 1;
isdefault = 3;
"major_url" = "1010_101001_1492505430373492.png";
message = "";
"minor_url" = "";
"minor_url_sec" = "";
name = "\U6d4b\U8bd5";
type = "";
"video_url" = "";
},
{
adlink = "<null>";
consumetype = "";
deliveryid = 2;
index = 2;
isdefault = 3;
"major_url" = "<null>";
message = "";
"minor_url" = "";
"minor_url_sec" = "";
name = 232;
type = "";
"video_url" = "";
}
)
本来我以为是我存储的数据类型不符合存储的要求,事实是符合的。于是我就网上找了一些和我出现同样错误的文章,发现返回的的数据有"<null>",而NSUserDefaults是不能被成功解析并存入的,于是我就给后台同事说了,让他修改后,我再次存储的数据时,不再报错了!!!