Ios 捕获NSKeyedUnachiver异常

Ios 捕获NSKeyedUnachiver异常,ios,swift,nsdata,nsexception,nskeyedunarchiver,Ios,Swift,Nsdata,Nsexception,Nskeyedunarchiver,在Swift中,NSKeyedUnarchiver.unarchiveObjectWithData(data)将在无法取消归档数据时引发异常 在某些情况下,我们无法保证数据是否已损坏,例如在读取文件时 我不知道Swift中有try/catch机制,也不知道像canUnarchive这样的方法有助于防止异常 除了在Obj-C中实现try/catch之外,这个问题还有一个纯Swift解决方案吗?因为unarchiveObjectWithData()不会抛出它的异常,所以目前无法在Swift中捕获它(

在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)
}

我也有同样的问题。你已经找到解决方案了吗?苹果应该尝试一下/抓住斯威夫特…同样的问题在这里,这是疯狂的。。