如何将协议模型设置为多个已知类型的字符串 /对象



api json响应第一场景:

{
    "success": false,
    "code": 200,
    "response": {
        "error_message": "Incorrect email or password."
    }
}

第二场景:

{
    "success": false,
    "code": 200,
    "response": {
        "error_message": {
            "email": [
                "Email is empty."
            ],
            "password": [
                "Password is empty."
            ]
        }
    }
}

我用于响应的协议模型

protocol UserLoginResponse {
    var id : Int { get }
    var success: Bool { get }
    var code: Int { get }
    var response: UserLoginEntity? { get }
}

我的问题在下面的协议中,不知道如何为error_message设置多种类型:

protocol UserLoginEntity {
    var error_message: String? { get }
}

你好,您可以使用"元组",因为error_message类型将解决您的问题:

typealias errorMsgType = (String,String)
var error_message: errorMsgType?
error_message = ("Email is empty.","Password is empty.")
print(error_message!)
print(error_message!.0)
print(error_message!.1)

另一个解决方案是小技巧:

创建一个字符串,例如:

let error1 = "Email is empty."
let error2 = "Password is empty."
let finalError = [error1,error2].joined(separator: "@@@@@@")
print(finalError)
let getErrors = finalError.components(separatedBy: "@@@@@@");
print(getErrors)

相关内容

最新更新