1

質問:

渡される列挙型が型である場合に、オプションではない型が渡されるように強制する方法で関数を定義するにはどうすればよい.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 の両方からの素晴らしい回答。それらを区別する唯一のことは、アレックスがニールのほんの少し前に答えたことです. 両方ありがとう!

4

2 に答える 2