问题:
当传入的枚举也是类型时,如何以强制传递非可选类型的方式定义函数.Success
?如果无法做到这一点,那么最好的建模方法是什么?
语境:
我正在围绕我们的 API 制作基于完成处理程序的包装器。传递回处理程序的参数包括一个enum
给出响应状态的参数和一个User
实例。enum
是这样的:
enum ResponseStatus : Int {
case Success = 200
case InvalidParameters = 422
// and a few more
}
方法签名是这样的:
static func createAccount(email: String, password: String, handler: (status: ResponseStatus, user: User?) -> ())
这样做的问题是它.Success
可能会与nil
用户一起返回,这不应该发生。
我希望能够强制执行,如果.Success
通过,用户不能是nil
. 这可以做到吗?如果没有,最好的管理方法是什么?
提前感谢您的帮助。
@AlexsanderAkers 和 @neilkimmett 都给出了很好的答案。唯一将他们分开的是亚历克斯在尼尔之前就回答了。谢谢两位!