iOS 如何保存类对象的字典?
Posted
技术标签:
【中文标题】iOS 如何保存类对象的字典?【英文标题】:iOS How to save a dictionary of class objects? 【发布时间】:2013-07-09 10:34:51 【问题描述】:到目前为止,我一直在使用NSUserDefaults
来保存我的NSMutableDictionaries
,但现在我想保存一个如下所示的字典:它将保存带有键的不同Car
对象:模型的车。 Car
类将有一个包含其基本特征的字典和一个包含Person
对象(谁使用汽车)的字典。每个Person
类都将个人信息作为属性。我可以做其他所有事情,但不能保存第一个 NSMutableDictionary
,它将保存所有这些信息。(字典必须只包含非属性值错误)什么是保存它的合适方法?
【问题讨论】:
【参考方案1】:您必须使用像 NSKeyedArchiver 这样的存档器来将您的对象序列化/反序列化为 NSData 存档。
图表中的所有对象
汽车 人 这些对象的所有属性都不是值对象 (即不是 NSString, NSDate, NSArray, NSNumber,...)必须采用 NSCoding 协议。为此,您可以使用:
-(id)initWithCoder:(NSCoder *)coder
// Tell the unarchiver how to read your object properties from the archive
_oneObjectProperty = [coder decodeObjectForKey:@"propertyKey"];
.....
-(void)encodeWithCoder:(NSCoder *)coder
// Tell the archiver how to serialise your object properties
[coder encodeObject:_oneObjectProperty ForKey:@"propertyKey"];
....
您可以在此处找到代码示例: Why NSUserDefaults failed to save NSMutableDictionary in iPhone SDK?
【讨论】:
【参考方案2】:您可以使用NSKeyedArchiver
保存对象并使用NSKeyUnarchiver
检索它们。
【讨论】:
以上是关于iOS 如何保存类对象的字典?的主要内容,如果未能解决你的问题,请参考以下文章