[myclass encodeWithCoder:]:使用NSUserDefaults时发送到实例错误的无法识别的选择器

时间:2013-06-26 19:52:11

标签: ios nsdictionary restkit nsuserdefaults

我试图用restkit中的值填充字典。我在restEngine.m中使用NSUserDefaults保存字典

 NSDictionary *dict = [mappingResult dictionary];

                   [[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:dict] forKey:kPopulateTableView ];
                   [[NSUserDefaults standardUserDefaults] synchronize];

当我构建应用程序时,它会出现错误消息:

" [myclass encodeWithCoder:]:无法识别的选择器发送到实例"

我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

似乎在您的NSDictionary dict中保存了无法编码的对象。
BUT
只有可编码的对象才能与归档器一起使用。

要编码,他们必须实施NSCoding protocol

SO:myclass需要实现NSCoding


有关详细信息,请阅读“存档和序列化编程指南”