繁体   English   中英

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

[英]Swift - how to obtain enum case argument from enum variable?

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中获取消息变量?

使用可以使用:

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

通常您可以使用:

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

注意:在swift 4中,您的枚举大小写应为小写:SimpleErrorMessage-> simpleErrorMessage

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM