在 Swift 中,NSKeyedUnarchiver.unarchiveObjectWithData(data)
将在无法取消归档数据时抛出异常。
在某些情况下,我们无法保证数据是否未损坏,例如从文件中读取时。
我不知道 Swift 中有 try/catch 机制,也不知道有类似 canUnarchive
的方法可以帮助防止异常。
除了在 Obj-C 中实现 try/catch 之外,是否有针对此问题的纯 Swift 解决方案?
最佳答案
因为 unarchiveObjectWithData()
不会throw
它的异常,目前没有办法在 Swift 中捕获它(截至写作时)。 iOS 9 SDK 添加了一个新的NSKeyedUnarchiver
方法decodeTopLevelObject()
,它现在throws
一个错误。您可以使用 do
、try
、catch
控制流来捕获它。
do {
let result = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(NSData(...))
} catch {
print(error)
}
关于ios - 捕获 NSKeyedUnarchiver 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374127/