我正在尝试这样做:

 catch LocksmithError.Duplicate, LocksmithError.Allocate {...}

但是我在 , 上收到一个错误说:



这是否意味着您不能组合 case expression2, expression3 : 之类的案例?有什么理由这样做吗?

最佳答案

不,目前无法在 catch 子句中组合多个模式 - 语法( as detailed by the Swift Language Guide )只允许匹配单个模式:



另一个可能的解决方案是在绑定(bind)模式之后使用 LocksmithError 子句,只要您的错误枚举是微不足道的( where 似乎是):

catch let error as LocksmithError where error == .Duplicate || error == .Allocate {
    // ...
}

关于swift - 是否可以结合捕获?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40135735/

10-10 17:36