tetsufeの人生ブログ

生きがいとしてのプログラミング・サービス開発をする大学生のブログ

Switch must be exhaustive do you want to add missing cases?とエラーが出る時の対処法

enumを網羅しているのに、Switch must be exhaustive do you want to add missing cases?と出て、?となったので、その時の対処法。

これは、以下のようにEnum型をIimplicitly unwrapped optional型やoptional型で定義しているときにおこります。

enum MyEnum{
    case a
    case b
}

var myEnum : MyEnum?

switch myEnum{ //ここでエラー!
case .a:
    // do somethingA
case .b:
    // do somethingB
}

これは、以下のようにmyEnumをunwrapすれば解決です。

switch myEnum! { //OK!
case .a:
    // do somethingA
case .b:
    // do somethingB
}

変なところで詰まってしまいました・・・