【发布时间】:2017-01-09 10:12:55
【问题描述】:
UIAlertView 有两个变量,但只有一个是可选的。比方说
lazy var a: UIAlertView = {
return UIAlertView() // Which is not important here
}()
var b: UIAlertView?
和委托方法
func alertView(alertView: SPAlertView!, clickedButtonAtIndex buttonIndex: Int) {
switch (alertView, buttonIndex) {
case (a, 0): // Do something
case (a, 1): // Do something
case (b, 1): // <== Want to do something here but, b is optional.
default: break
}
}
模式匹配时如何解开b?
注意:问题是关于 Swift language 而不是 UIAlertView。
有什么帮助吗?
【问题讨论】:
-
@MartinR 不,我的问题与您提到的问题完全相反。
-
我不这么认为。 question 是如何将非可选的
someValue与可选的someOptional匹配,这正是您要问的。接受的答案中的第一个建议是相反的,但第二个建议case let val where val == someOptional:也适用于您的情况(并且类似于 Callam 下面的建议)。 -
@MartinR 好的,那么您能否将
case let val where val == someOptional:与@Callam 的建议结合起来。
标签: swift switch-statement pattern-matching optional