iOS 解档 value for key 'NS.objects' was of unexpected class问题

苹果在iOS 11之后提供了新的解档方法:

+ (nullable id)unarchivedObjectOfClass:(Class)cls fromData:(NSData *)data error:(NSError **)error API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0)) NS_REFINED_FOR_SWIFT;

当使用新的解档方法解档嵌套模型时,会报code:4864的错误解档失败:


WX20201021-163857@2x.png

解决此问题的方法有两种:
方法一:
使用[NSObject class]类型解档

[NSKeyedUnarchiver unarchivedObjectOfClass:[NSObject class] fromData:data error:&error];

方法二:
将所有的嵌套模型作为set集合解档

NSSet *clsSet = [NSSet setWithObjects:[NSArray class],[Person class], nil];
    if (@available(iOS 11.0,*)) {
        NSArray *getArray1 = [NSKeyedUnarchiver unarchivedObjectOfClasses:clsSet fromData:nil error:nil];
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容