我有以下枚举,当有structs
时需要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
}
我想使用enum返回响应,如下所示
return completion(.Error(9999, nil, UserError(errorTitle: kINVALID_FIELDS_ERROR_TITLE, errorMessage: errorMessage)))
但是,我收到了错误
nil与预期参数类型不兼容&#39; LogError&#39;
答案 0 :(得分:1)
如果您希望能够使用LogError
,则必须使nil
成为可选项:
enum Result<T> {
case Success(T)
case Error(Int, LogError?, UserError)
// ^
}