美文网首页
iOS NSKeyedArchiver 归档崩溃 奇葩原因

iOS NSKeyedArchiver 归档崩溃 奇葩原因

作者: okerivy | 来源:发表于2018-01-20 16:20 被阅读288次

报错现象

+[ApiBase encodeWithCoder:]: unrecognized selector sent to class 0x101fd76d8

崩溃分析

基类Model已经遵守了<NSCoding,NSCopying>协议
但是一运行,就崩溃,在别的项目中同样的代码不会崩溃。
并且,我这里就不是对model进行归档,而是已经转成了字典了,对字典json进行归档,按理说就能直接归档,但是崩溃。

原始代码

NSMutableArray *mArr = [NSMutableArray array];
for (SSXMessageModel *model in oldMessages) {
    NSMutableDictionary *dic = [model mj_keyValues];
    [mArr addObject:dic];
}
[NSKeyedArchiver archiveRootObject:mArr toFile:PathMore];

修改后的代码

for (SSXMessageModel *model in oldMessages) {
    NSMutableDictionary *dic = [model mj_keyValues];
    [dic removeObjectForKey:@"debugDescription"];
    [dic removeObjectForKey:@"description"];
    [dic removeObjectForKey:@"superclass"];

    [mArr addObject:dic];
}
[NSKeyedArchiver archiveRootObject:mArr toFile:PathMore];

原因分析

这个字典里面有三个key,把这三个key删除就能运行了。也是够奇葩了
真正的原因:暂时未知。

相关文章

网友评论

      本文标题:iOS NSKeyedArchiver 归档崩溃 奇葩原因

      本文链接:https://www.haomeiwen.com/subject/zsytaxtx.html