我创建了一个自定义类&为该类创建了对象。我想将该对象存储到NSUserDefault中。将对象设置为userfaults时出错。我怎么设置?
答案 0 :(得分:3)
您必须在课堂上实施NSCoding协议。实现协议方法。 这只是序列化。在存储对象时,您应该序列化(NSKeyedArchiver)类和&与检索相同,您应该反序列化(NSKeyedUnArchiver)该对象。
方法是
答案 1 :(得分:0)
默认对象必须是属性列表,即(或 对于集合的实例组合):NSData,NSString, NSNumber,NSDate,NSArray或NSDictionary。如果你想存储任何 在其他类型的对象中,通常应将其存档以创建 NSData的实例。
创建NSData
实例的最简单方法是使用NSKeyedArchiver
。
答案 2 :(得分:0)
最可能的原因是您的结构中存在难以存档的内容。
以下是您可能会觉得有用的NSUserDefaults类参考的引用:
NSUserDefaults类提供了访问常用类型(如浮点数,双精度数,整数,布尔值和URL)的便捷方法。默认对象必须是属性列表,即(或集合的实例组合)的实例:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果要存储任何其他类型的对象,通常应将其存档以创建NSData实例。有关更多详细信息,请参阅“首选项和设置编程指南”。
编辑。 被斯蒂芬击败,给男人一个奖励:)