Swift enum Fehler: Verspannt block von Anweisungen ist eine nicht verwendete Verschluss
Enumerationen, die im Swift-look ist wirklich mächtig, aber... ich muss fehlt etwas darüber, wie ich bin, dies zu implementieren. Ich möchte, um zu definieren, werden einige Aktionen für eine remote media player. Scheint wie eine gute Verwendung für enum. Ich habe definiert die erlaubten Nachrichtentypen in das Enum, und ich möchte es verwenden, um eine modifizierte parameter-Wörterbuch. Die Parameter werden schließlich geschickt bekommen als JSON an den Spieler. Im moment bin ich ein Braced block of statements is an unused closure
Fehler. Hier ist der relevante code:
public enum PlayerCommand {
case Play
case Pause
case Load(String)
func params(cmd_id:NSInteger) -> [String : Any] {
var dict = [
CMD_ID : cmd_id,
TYPE : "LOAD",
AUTOPLAY : false,
MEDIA : NSNull()
]
switch self {
case .Load(let media): {
dict.updateValue(media, forKey: MEDIA)
}
case .Play: {
dict.updateValue("PLAY", forKey: TYPE)
dict[CURRENT_TIME] = NSNull()
}
case .Pause: {
dict.updateValue("PAUSE", forKey: TYPE)
}
default:
}
return dict
}
}
Ich bin sicher, dass es auch zu einem mehr funktionale (swiftian?) Weg, um dies auszudrücken, als gut, aber ich bin nicht viel Glück mit der syntax noch nicht. Karte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie Ihre
switch
syntax ein bisschen ab, ist alles. Sie brauchen nicht{ }
um die Ausdrucksformen der jeweiligencase
(Swift ist eine Interpretation, wie Sie versuchen, um eine Schließung Ausdruck, daher der Fehler).Nur tun
case .Play: dict.updateValue(etc.)
.Beachten Sie auch, müssen Sie eine Anweisung im default-Klausel, aber Sie nicht wirklich benötigen einen Standard-in diesem Fall, da der Schalter anstrengend alle Möglichkeiten.