iOS12 中的 NSKeyedUnarchiver 更改 - 如何取消存档字符串数组

NSKeyedUnarchiver changes in iOS12 - How to unarchive an Array of Strings

Foundation 从 iOS 11.4 到 iOS12 有一些变化。不幸的是,我找不到关于此主题的任何有用文档。

在 iOS12 之前,我有这段代码 完美地工作 从某个文件路径读取带有字符串的数组:

if let myList : Array<String> = NSKeyedUnarchiver.unarchiveObject(withFile: filePath) as? Array<String> {
   // ...
}

正如我发现的,iOS12 中有一些我应该使用的新方法,我尝试了这个(当然是在 do-catch-structure 中,在获取数据对象之后):

let myList : Array<String> = try NSKeyedUnarchiver.unarchivedObject(ofClass: Array<String>, from: data)

我也试过这个没有成功:

let myList : Array<String> = try NSKeyedUnarchiver.unarchivedObject(ofClass: Array<String>.self, from: data)

有什么推荐吗?

我终于找到了自己。 它适用于此方法:

if let fileNames = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(dataObject) as? Array<String> {
    // ... 
}