设置响应只要该选项不适用,就会为结构取nil的枚举

问题描述 投票:0回答:1

当有一个structs时,我有以下Enum需要2个error。但是,根据error有时候LogError将不适用,或者有时UserError将不适用。例如,对于用户输入验证错误,我不想在日志中写入任何内容,但我确实想向用户显示错误,因此我想在这些情况下为LogError发送nil。我怎么能这样做呢?

enum Result<T> {
    case Success(T)
    case Error(Int, LogError, UserError) //error code, error title, error message
}

struct LogError {

    var errorMessage: String
}

struct UserError {

    var errorTitle: String
    var errorMessage: String
}

我想使用枚举返回响应,如下所示

return completion(.Error(9999, nil, UserError(errorTitle: kINVALID_FIELDS_ERROR_TITLE, errorMessage: errorMessage)))

但是,我收到了错误

nil与预期的参数类型'LogError'不兼容

swift enums
1个回答
1
投票

如果你想能够使用LogError,你必须使nil可选:

enum Result<T> {
    case Success(T)
    case Error(Int, LogError?, UserError)
    //                      ^
}
© www.soinside.com 2019 - 2024. All rights reserved.