如何在強制執行非可選類型要傳遞的方式定義一個函數時也被傳入一個枚舉類型爲.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。唯一分開的是亞歷克斯在尼爾面前回答。謝謝你們!
你真的是'結果<用戶,ResponseError>'?你不是指'ResponseStatus'? –
Rob