Wyliczenia w Swift wyglądają naprawdę potężnie, ale ... Muszę pomijać coś o tym, w jaki sposób to robię. Chcę zdefiniować pewne akcje dla zdalnego odtwarzacza multimedialnego. Wydaje się, że jest to dobry przykład do wyliczania. Zdefiniowałem dozwolone typy wiadomości w Enum i chciałbym go użyć, aby uzyskać zmodyfikowany słownik parametrów. Parametry zostaną ostatecznie przesłane graczowi jako JSON. W tej chwili pojawia się błąd Braced block of statements is an unused closure
. Oto odpowiedni kod:Swift enum error: zablokowany blok instrukcji jest niewykorzystanym zamknięciem
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
}
}
Jestem pewien, że istnieje również bardziej funkcjonalny (? Swiftian) sposób wyrazić to, jak dobrze, ale nie jestem posiadające dużo szczęścia ze składnią jeszcze. mapa?