2013-07-09 59 views
1

到目前爲止,我一直在使用NSUserDefaults來保存我的NSMutableDictionaries,但現在我想保存一個看起來像這樣的字典:它將持有與鑰匙不同的Car對象:汽車模型。 Car類將具有其基本特徵的詞典和對象(使用該車的人)的字典Person。每個Person課程都會將個人信息作爲屬性。我可以做其他任何事情,但不能保存第一個將保存所有這些信息的NSMutableDictionary(字典必須只包含非屬性值錯誤)什麼是保存它的適當方法?iOS如何保存類對象的字典?

回答

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?

+0

感謝很多:)它的工作完美的我。 – vejmartin

0

您可以使用NSKeyedArchiver保存對象並使用NSKeyUnarchiver來檢索它們。