Сам enum
должен быть объявлен как generic, а не как регистр, и вы не можете использовать выражение where в объявлении case
, вам нужно указать ограничения универсального типа для связанного значения.
enum TextEditEvent<T>{
case editingBegin(UITextField)
case editingEnd(UITextField, UITextField?)
case textChanged(String?, UILabel?, T:Object, Updateable, String)
}
Или, если вы хотите, чтобы T
имел эти ограничения типов в целом enum
, а не только для случая textChanged
, вы можете объявить enum
следующим образом:
enum TextEditEvent<T: Object, Updateable>{
case editingBegin(UITextField)
case editingEnd(UITextField, UITextField?)
case textChanged(String?, UILabel?, T, String)
}