Swift - как получить аргумент enum case из переменной enum? - PullRequest
0 голосов
/ 29 января 2019
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 Ответ

0 голосов
/ 29 января 2019

Использование может использовать:

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

Обычно вы можете использовать:

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

Примечание: в swift 4 регистр перечисления должен быть в нижнем регистре: SimpleErrorMessage-> simpleErrorMessage

...