2012-04-06 133 views
5

我有一个实现序列化的对象,我有几个是对象的字典。当我编译并运行时,我收到很多警告,说我正在替换键的值。发生这种情况是因为,当序列化字典中的下一个对象时,它将使用与前一个对象相同的密钥来存储变量,对吗? 我该如何解决这个问题?有没有一种方法可以在encodeWithCoder方法中知道是否有任何变量已经存储了该名称?如何解决的NSKeyedArchiver警告:替换现有值

+0

想想看,没有回答任何代码是困难的。 – zaph 2012-04-06 12:36:20

回答

16

encodeWithCoder:与具有相同的密钥或出现在多个对象相同的密钥多个字典没有问题。你的问题是更可能是因为您编码多事情在同一个对象(以encodeObject:forKey:即在您的通话)相同的密钥。

+0

谢谢您的回答。你在对象的同一实例呢?就像如果我叫'encodeObject:forKey:“在同一个'encodeWithCoder相同的键两次:”法? – XaitormanX 2012-04-06 13:16:29

+1

是的,还是在超类中。 – 2012-04-06 13:20:53

+0

好的,谢谢。我会再次修改方法 – XaitormanX 2012-04-06 13:21:42