Swift verwenden, wenn auf einer enum-wodurch Fehler nicht konvertierbar '_ArrayCastKind'

Ich bin mit der Beta 3 von xcode 6, und ich bin mit einem problem zu tun, eine einfache if-Anweisung gegen ein enum übergeben, in ein argument für eine Schließung. Hier ist die einfache enum-definition:

enum FLSTeslaLoginStatus {
    case LoggedOut
    case LoggedIn
    case LoggingIn
    case LoginFailed(NSData!, NSHTTPURLResponse!, NSError)
}

Ist und der code mit dem Fehler:

Swift verwenden, wenn auf einer enum-wodurch Fehler nicht konvertierbar '_ArrayCastKind'

Wie Sie sehen können die switch-Anweisung funktioniert gut, aber wenn der check führt zu dem Fehler. Dies ist nur eine test-code, damit ich nicht haben in der Regel einen switch und einer if-Anweisung, aber ich versuche, herauszufinden, was falsch mit der if-Anweisung. Ich denke es ist ein compiler-bug.

Unterstützt wird dies in Swift 2.0 mit dem Gebrauch von "wenn-Fall".

  • sieht aus wie wenn irgendein Fall von der enum verknüpft haben, Wert verwenden, müssen Sie die switch-Anweisung, um es zu testen. Zeit, einen bug-report erstellen (zumindest die Fehlermeldung müssen aussagekräftig sein). Bekomme auch die gleichen Fehler beim vergleichen der enum-zu sich selbst. also t == t.
  • Komischerweise bekomme ich die Fehlermeldung, wenn ich den shortcut .LoggedIn, aber wenn es nicht voll qualifiziert ist.
  • Es ist fast sicher ein Fehler, die Datei radar.
  • Kevin, bekomme ich die gleiche. Funktioniert gut, wenn Sie vollständig qualifiziert sind.
Schreibe einen Kommentar