iOS---NSUserDefaults插入报错attempt to insert non-property list object

转载 2015年11月19日 18:28:37

转载自:http://www.tuicool.com/articles/AjIFJbN


在使用NSUserDefaults的时候插入数据有时候会报以下错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object {
  array =	 (
        {
      481 =			 {
        msg =				 {
          1413462307 = "[3197]\U4e8c\U5341\U516b\U56de\U590d\U4e86\U4f60\Uff1a\U4f60\U6211";
        };
        "new_msg" = 1;
        "usr_id" = 2;
        "usr_name" = "<null>";
        "usr_tx" = "<null>";
      };
    }
  );
} for key newMsgArrayDict'
这种错误的原因是插入了不识别的数据类型,NSUserDefaults支持的数据类型有 NSString、 NSNumber、NSDate、 NSArray、NSDictionary 、BOOL、NSInteger、NSFloat等系统定义的数据类型。

自定义的类型需要转成NSData再存入。

===============================================

我原来认为  NSUserDefaults 存不了数组,又换成了字典,但是还是报错,最后求助网友大神解决了,是我里边的数据结构有"<null>",而  NSUserDefaults是不能被成功解析并存入的,所有在存入之前需要将里边的"<null>"改成""即可。

相关文章推荐

Attempt to insert non-property list object - 芒果iOS

【主要内容:】 1. 错误起因 2. 错误提示 3. 分析错误原因 4. 解决问题办法 一、 错误起因 昨天做一个功能,需要把一个封装好的对象存起来。由于数据可能经常变动...

错误:*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object

*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object

Attempt to set a non-property-list object 报错问题

NSUserDefaults只能保存诸如NSArray、NSDictionary、NSData、NSNumber等基本数据类型,如果我们强制保存自定义的类,就会出现这个错误:Attempt to se...

关于模型数组进行本地保存中遇到的一些问题

今天我在项目中遇到一个难题 本地数据要进行保存,此时我的数据源是一个数组,但是我的数组内部的元素为模型,我在进行数据源保存的时候出现了错误:报错如下: Terminating app due ...

NSUserDefaults数据保存报错:Attempt to set a non-property-list object...

在使用NSUserDefaults的时候插入数据有时候会报以下错误: Attempt to set a non-property-list object {type = immutable ...

NSUserDefaults插入报错attempt to insert non-property list object

在使用NSUserDefaults的时候插入数据有时候会报以下错误: *** Terminating app due to uncaught exception 'NSInvalidArgume...

NSUserDefaults:Attempt to insert non-property value Objective C

if you don't want to bother about ensuring all your dictionary values are the property list types, t...
  • nyh1006
  • nyh1006
  • 2014年09月04日 22:28
  • 3604

Attempt to set a non-property-list object as an NSUserDefaults

当使用NSUserDefault直接存储Facebook的token对象时,会报错(Attempt to set a non-property-list object as an NSUserDefa...

iOS使用NSUserDefaults 存储数据报Attempt to set a non-property-list object as an NSUserDefaults value的错误解决

1、参考文章       http://stackoverflow.com/questions/19720611/attempt-to-set-a-non-property-list-objec...

-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<Player: 0x3b0cc90>' of c

That is the error message I get when I put my custom class, "Player", in the NSUserDefaults. Now, I'...
  • s_s520
  • s_s520
  • 2013年09月25日 23:03
  • 5419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS---NSUserDefaults插入报错attempt to insert non-property list object
举报原因:
原因补充:

(最多只允许输入30个字)