7

私はここで多くの質問を探してきました.同様のタイトルのEnum case switch not found in typeが見つかりましたが、解決策はありません.

個々の状態で、次の信号機の色は何かという質問を解決するために、それ自体の変異を含む enum を使用したいと思います。

enum TrafficLights {
    mutating func next() {
        switch self {
        case .red:
            self = .green
        case .orange:
            self = .red
        case .green:
            self = .orange
        case .none:
            self = .orange
        }
    }
}

すべてのケースを可能なオプションとして設定しましたが、それでもエラーが返されます:

タイプ 'TrafficLights' に Enum 'case' が見つかりません

4

2 に答える 2

11

Int をカスタム列挙型に変換するときに、同じエラーで問題が発生しました。

switch MyEnum(rawValue: 42) {
case .error:
    // Enum case `.error` not found in type 'MyEnum?'
    break
default:
    break
}

問題はMyEnum(rawValue: 42)、オプションを返すことです。それをアンラップするか、非オプションを提供して、列挙型の切り替えを許可します。

switch MyEnum(rawValue: 42) ?? MyEnum.yourEnumDefaultCase {
case .error:
    // no error!
    break
default:
    break
}
于 2016-11-24T08:35:12.183 に答える