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的错误解档失败:



解决此问题的方法有两种:
方法一:
使用[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];
    }

你可能感兴趣的:(iOS 解档 value for key 'NS.objects' was of unexpected class问题)