1

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

4

2 回答 2

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?

于 2013-07-09T10:46:17.610 回答
0

您可以使用NSKeyedArchiver来保存对象并NSKeyUnarchiver检索它们。

于 2013-07-09T10:45:00.153 回答