iOS如何保存类对象的字典?

时间:2013-07-09 10:34:51

标签: ios class core-data nsuserdefaults nsmutabledictionary

到目前为止,我一直在使用NSUserDefaults来保存我的NSMutableDictionaries,但现在我要保存一个字典,它看起来像这样:它会保持不同的Car带钥匙的物体:汽车的模型。 Car类将包含其基本特征的字典和Person对象的字典(使用该汽车的人)。每个Person课程都会将个人信息作为属性。我可以做其他所有事情,但不能保存保存所有信息的第一个NSMutableDictionary。(字典必须只包含非属性值错误)保存它的适当方法是什么?

2 个答案:

答案 0 :(得分:2)

您必须使用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?

答案 1 :(得分:0)

您可以使用NSKeyedArchiver保存对象,使用NSKeyUnarchiver来检索对象。