代码之家  ›  专栏  ›  技术社区  ›  Gintas_

swift-如何从枚举变量获取枚举大小写参数?

  •  0
  • Gintas_  · 技术社区  · 6 年前
    enum ApiError: Swift.Error
    {
        case SimpleErrorMessage(message: String)
    }
    
    
    // Observable ...
    .map({ (response, json) -> Bool in
                if(response.statusCode == 200)
                {
                    return true
                }
                else if(response.statusCode == 404)
                {
                    return false
                }
                else
                {
                    throw ApiError.SimpleErrorMessage(message: "test")
                }
            })
    
    // Observable
    .subscribe(onError: { [weak self] (error) in
                    // todo notify somehow?
                    guard let err = error as? ApiError else { return }
                    if case .SimpleErrorMessage == error
                    {
                    }
            })
    

    如何在OnError中获取消息变量?

    1 回复  |  直到 6 年前
        1
  •  2
  •   CZ54    6 年前

    使用可以使用:

    if case .SimpleErrorMessage(message: let message) == error

    一般来说,您可以使用:

    switch error {
        case .SimpleErrorMessage(message: let message):
            //Use the message
           break
        }
    

    注意:在Swift 4中,您的枚举大小写应该较低:simpleErrorMessage->simpleErrorMessage