苹果在iOS 11之后提供了新的解档方法:
@available(macOS 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *)
@nonobjc public static func unarchivedObject(ofClasses classes: [AnyClass], from data: Data) throws -> Any?
当使用新的解档方法解档嵌套模型时,会报code:4864的错误解档失败:
解决此问题的方案 需要将嵌套模型中所有涉及到的对象类型都添加进去 如果不是很清楚哪些类型 可以报错提示一个就添加一个 对象类型 到 ofClasses [] 数组中
let object = try NSKeyedUnarchiver.unarchivedObject(ofClasses: [NSMutableDictionary.self], from: data!)