Sian 发表于 2014-9-1 16:04:24

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

2014-09-01 15:55:54.703 RouteMapInformation Attempt to set a non-property-list object (    "\U4e00\U952e\U627e\U8f66\Uff0c\U65b9\U4fbf\U5feb\U6377\Uff0c\U7701\U65f6\U7701\U529b",    "<RMGuideView: 0x9b58d90; baseClass = UILabel; frame = (0 0; 320 480); text = '\U4e00\U952e\U627e\U8f66\Uff0c\U65b9\U4fbf\U5feb\U6377\Uff0c\U7701\U65f6\U7701\U529b'; gestureRecognizers = <NSArray: 0x9b662f0>; animations = { opacity=<CABasicAnimation: 0x9b46e20>; }; layer = <CALayer: 0x9b419e0>>") as an NSUserDefaults value for key RMGuideView
出现这种情况的根本原因是什么,其实最后一行有关键字“NSUserDefaults”,NSUserDefaults 不能用来存储图像对象 ,这是因为正如异常说, UIImage 不是一个属性列表对象。属性列表是这些,和仅是这些类 (或任何子类) 的对象的组合:
NSArray
NSDictionary
NSString
NSData
NSDate
NSNumber能够保存在NSUserDefaults中的对象只能是上述几种或组合,并且内部子元素也只能是以上几种,比如创建一个图片UIImage数组Array,再将数组Array保存到NSUserDefaults中,这样是不行的,那么一定要将UIImage图片保存下来该如何做呢?用NSData格式化编码,至于如何编码不属于本次讨论的范畴,去看看NSData的用法就明了,很简单的。
页: [1]
查看完整版本: Attempt to set a non-property-list object as an NSUserDefaults value for key