Ich mache eine Einheit Framework in Swift, die Messung Oberklasse und Unterklassen für verschiedene Einheiten, wie Masse und Volumen hat. Eine Funktion besteht darin, dem Framework zu ermöglichen, richtig zu erraten, mit welcher Einheit es erstellt wurde, und die richtige Klasse zurückzugeben. Beispielcode:Make Initialisierung für Oberklasse eine bestimmte Unterklasse zurückgeben?
class Measurement {
var unitString : String
init(unknownUnit: String) {
// checks if the unit is either Volume or Mass, and returns an instance of that class
}
}
class Volume : Measurement {
init(unitString: String) {
}
}
class Mass : Measurement {
init(unitString: String) {
}
}
let mass = Mass("kg") // class: Mass
let volume = Volume("ml") // class: Volume
let shouldBeVolume = Measurement("ml") // class: Volume
let shouldBeMass = Measurement("kg") // class: Mass
Ist es möglich, eine vererbte Klasse erstellen ein Objekt einer bestimmten Unterklasse zu haben, wenn es zu initialisieren?
Bibliothek ist Indus Valley und Open Source auf GitHub namens
Dies ist definitiv eine lästige Beschränkung von Swift 'init' keinen Wert zurück. – pkamb