Ich möchte ein Protokoll, das einige Methoden und Eigenschaften definiert. Merkmalstypen und Methodenrückgabetypen können jedoch zwischen den verschiedenen Klassen variieren, die dem Protokoll entsprechen. Zum Beispiel: A.getContent()
kann einen Wert vom Typ String
zurückgeben, aber B.getContent()
kann einen Wert vom Typ Int
zurückgeben. In meinem Beispiel unten verwendete ich den Typ Any
. Ist das in Swift möglich oder ist das ein völlig falscher Ansatz? Vielleicht mit Generika?Verschiedene Rückgabetypen von Protokollmethode
protocol Content {
func getContent() -> any
}
class A: Content {
func getContent() -> String {
return "Im a String"
}
}
class B: Content {
func getContent() -> Int {
return 1234
}
}
Werfen Sie einen Blick auf den Abschnitt [zugehörige Typen im Swift-Programmiersprachenhandbuch] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Generics.html#//apple_ref/doc/uid/TP40014097-CH26 -ID189) :) – Hamish
Vielleicht mit Generika. – matt