ios – 捕获NSKeyedUnarchiver异常

前端之家收集整理的这篇文章主要介绍了ios – 捕获NSKeyedUnarchiver异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Swift中,如果无法取消存档数据,NSKeyedUnarchiver.unarchiveObjectWithData(data)将抛出异常.

在某些情况下,我们无法保证数据是否未损坏,例如从文件读取时.

我不知道Swift中的try / catch机制,也不知道像canUnarchive这样有助于防止异常的方法.

除了在Obj-C中实现try / catch之外,还有一个纯Swift解决方案来解决这个问题吗?

解决方法

因为unarchiveObjectWithData()没有抛出它的异常,所以目前无法在Swift中捕获它(截至编写时). iOS 9 SDK添加了一个新的NSKeyedUnarchiver方法decodeTopLevelObject(),它现在抛出一个错误.您可以使用do,try,catch控制流程来捕获它.
do {
    let result = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(NSData(...))
} catch {
    print(error)
}

猜你在找的iOS相关文章