我有一本字典(这是可变的,如果有差别),其中包含nsarrays,又包含(NSObject的子类)■ 我已经实现的initWithCoder和encodeWithCoder这样的:保存自定义的NSArrays的一个NSDictionary对象
-(id)initWithCoder:(NSCoder *)aDecoder {
self = [super init];
self.Title = [aDecoder decodeObjectForKey:@"Title"];
self.SiteAPIURL = [aDecoder decodeObjectForKey:@"SiteAPIURL"];
self.ID = [aDecoder decodeObjectForKey:@"ID"];
return self;
}
-(void) encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.Title forKey:@"Title"];
[aCoder encodeObject:self.SiteAPIURL forKey:@"SiteAPIURL"];
[aCoder encodeObject:self.ID forKey:@"ID"];
}
但是当我做[dictionary writeToFile:savepath atomically:YES];
所以我在做什么错了,究竟是什么系列化,我需要我需要使用的NSKeyedArchiver什么不正确保存?
你能解决这个问题吗?我具有相同的确切数据结构(数组中的不同自定义对象),我一直在尝试实现将字典保存数天。我也在我的对象类中实现了initWitCoder和encodeWithCoder,并且我试图使用UserDefaults和plists,但是我无法让它们工作。任何帮助感谢! – RyanG 2011-05-24 13:24:38
@Ryan,你需要使用NSKeyedArchiver和NSCoding协议,查看接受的答案和Apple文档。 – 2011-05-24 13:33:42