UrK*_*UrK 3 syntax exception try-catch swift
我在我维护的代码中看到以下内容:
func parse(values: NSMutableDicationary) {
let data = try? JSONSerialization.data(withJSONObject: values, options: JSONSerialization.WritingOptions())
}
Run Code Online (Sandbox Code Playgroud)
注意该方法不会标记为抛出任何东西,也不会处理错误.代码确实使应用程序崩溃了.
我想弄清楚try?
(尝试用问号)意味着什么.
谷歌搜索或StackOverflowing没有返回任何有用的信息.
那么,try?
Swift的意思是什么?
Dáv*_*tor 10
如果标记try
带有问号的try?
,则抛出函数的返回值将是可选的.这将是nil
函数抛出一个错误(因此Swift返回一个nil
而不是抛出错误,因此你不需要一个do-catch
块)或者它将是函数的包装返回值,以防没有抛出错误.
这就是你可以模仿自己函数中的行为的方法:
func parse(values: NSMutableDicationary)->Data?{
do {
return try JSONSerialization.data(withJSONObject: values, options: JSONSerialization.WritingOptions())
} catch {
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
这基本上与以下相同:
func parse(values: NSMutableDicationary)->Data?{
return try? JSONSerialization.data(withJSONObject: values, options: JSONSerialization.WritingOptions())
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
637 次 |
最近记录: |