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

owe*_*eez 1 nsdictionary nsuserdefaults ios restkit

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

 NSDictionary *dict = [mappingResult dictionary];

                   [[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:dict] forKey:kPopulateTableView ];
                   [[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)

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

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

我在这做错了什么?

Dai*_*jan 5

似乎在你的NSDictionary中dict你保存了不可编码的对象.

只有可编码的对象可以与归档器一起使用.

为了可编码,他们必须实现 NSCoding protocol

SO:myclass需要实现NSCoding


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