Ich folgte einem Swift-Tutorial, wo wir eine Unterklasse von UIImageView namens DragImg schrieben und innerhalb dieser Unterklasse einige Funktionen übertraten, nämlich touchesBegan, touchsMoved und touchesEnded.Deklaration von Unterklassenobjekt als Oberklasse in swift, aber Objekt verhält sich immer noch als Unterklasse
Ich ging dann in den Identity Inspector für die Bilder, auf die ich die Unterklasse anwenden wollte, und änderte die Klasse in DragImg und dann verknüpfte sie mit ViewController.swift als Steckdose.
jedoch in meiner ViewController.swift Datei, die ich erklärte ihnen als UIImageView Objekt dh
@IBOutlet weak var HeartImg: UIImageView!
statt
@IBOutlet weak var HeartImg: DragImg!
Auch wenn ich diese nicht geändert haben, wird das Bild fungierte noch als nach den Definitionen der Funktionen, die wir in der Unterklasse geschrieben haben.
Ich bin nicht sicher, warum das immer noch funktionierte, da ich dachte, Superklassen könnten nicht auf Funktionen von Unterklassen zugreifen. Bedeutet das, dass die obige Deklaration weitgehend überflüssig ist und nur die Klasse im Identity Inspector verändert wurde?
Könnte jemand das bitte erklären?