JP *_*sek 6 nsdata nsexception ios nskeyedunarchiver swift
在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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1671 次 |
| 最近记录: |