美文网首页Swift知识集
[Swift Tips] 调用Error类型的localized

[Swift Tips] 调用Error类型的localized

作者: 冰琳92 | 来源:发表于2018-05-25 10:45 被阅读1次

    我们定义了一个LoginError, 并实现localizedDescription方法

    enum LoginError: Error {
        case usernameEmpty
        case passwordEmpty
        
        var localizedDescription: String {
            switch self {
            case .usernameEmpty:
                return "请输入用户名"
            case .passwordEmpty:
                return "请输入密码"
            }
        }
    }
    

    将我们定义的枚举转成Error, 预想的localizedDescription应该为请输入用户名

    let error: Error = LoginError.usernameEmpty
    print(error.localizedDescription)//The operation couldn’t be completed. (LoginError error 0.)
    

    但是这个打印结果为:
    The operation couldn’t be completed. (LoginError error 0.) 并不是我们所期望的

    那我们要怎么做呢

    只需要实现LocalizedError

    enum LoginError: Error {
        case usernameEmpty
        case passwordEmpty
    }
    
    extension LoginError: LocalizedError {
        var errorDescription: String? {
            switch self {
            case .usernameEmpty:
                return "请输入用户名"
            case .passwordEmpty:
                return "请输入密码"
            }
        }
    }
    

    再次测试:

    let error: Error = LoginError.usernameEmpty
    print(error.localizedDescription) //请输入用户名
    

    这就拿到我们期望的结果了

    参考

    相关文章

      网友评论

        本文标题:[Swift Tips] 调用Error类型的localized

        本文链接:https://www.haomeiwen.com/subject/oilyjftx.html