protocol TrackableAction {
var identifier: String { get }
}
struct ServerAction: TrackableAction {
let identifier = "Server"
enum Label: String {
case NotImplemented = "Feature not implemented"
case NotPlanned = "Feature is not planned in this version"
}
var label: Label
}
struct ClientAction: TrackableAction {
let identifier = "Client"
enum Label: String {
case NoneExisting = "Does not exist"
case CannotFindRoot = "The root was unknown"
}
var label: Label
}
ServerAction(label: .NotImplemented)
ClientAction(label: .NoneExisting)
Ist es möglich, die TrackableAction zu erweitern die duplizierte Enum und Label-Definition aufgenommen haben?
Ich möchte diese in der Lage sein, Objekte dieses Typs
func log(trackableAction: TrackableAction) {
// sends strings to a log service
print(trackableAction.label) // ERROR
}
Wenn Sie Enum innerhalb von Protokoll erklären wollen geerbt schicken Du kannst nicht. –
Eine Lösung, die ich hier sehe, ist, Enums ganz zu entfernen, "Label" als "String" zu deklarieren und es zum Protokoll zu bewegen. –