当有一个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'不兼容
如果你想能够使用LogError
,你必须使nil
可选:
enum Result<T> {
case Success(T)
case Error(Int, LogError?, UserError)
// ^
}