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

时间:2018-12-22 09:23:36

标签: arrays swift nskeyedunarchiver

Foundation从iOS 11.4到iOS12进行了一些更改。不幸的是,我找不到关于此主题的任何有用的文档。

在iOS12之前,我有这段代码完美运行,可以从某个文件路径读取包含字符串的数组:

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

我发现,我应该使用iOS12中的一些新方法,并尝试了这一点(当然是在do-catch-结构中,并且在获取数据对象之后):

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)

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

最后我发现了自己。 它使用此方法:

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