有很多类似的问题,但没有人描述如何使用try?
+ double optional 处理异常。
我知道 str1 不会产生异常。这只是一个例子:
let str1: String? = "some string"
let str2: String? = try? str1 //compilation error because "try? str1" returns object of type String??
一种可能的解决方案是 replace try?
-> try
:
let str1: String? = "some string"
let str2: String? = {
do {
return try str1
} catch {
return nil
}
}()
但是可以try?
像下面这样保存吗?
let str2: String? = try? ...//do something with str1 in the same single line
PS 在 Swift 5 中,初始代码可以工作,但我需要在 Swift 4 中使用它(升级到 Swift 5 需要对项目进行重大更改)