In meinen beiden Klassen, ich habe den folgenden CodeWie generische Swift-Funktion erstellen, die für 2 verschiedene Klassen funktionieren kann?
// Two classes who's code I am trying to reduce using protocols
class class1 {
var view: viewSubclass1!
func printName() {
print("This is the view: \(view)")
}
}
class class2 {
var view: viewSubclass2!
func printName() {
print("This is the view: \(view)")
}
}
// The protocol and protocol extension I am trying to create
protocol myProtocol {
var view: UIView {get set}
func printName()
}
extension myProtocol {
func printName() {
print("This is the view: \(view)")
}
}
// The subviews of UIView
class viewSubclass1: UIView {}
class viewSubclass2: UIView {}
Wie Sie sehen können, class1
und class2
verschiedene Klassen sind, aber den gleichen Variablenname: view
und die gleichen Funktionsnamen. Der Unterschied besteht darin, dass die Variablen view
unterschiedliche Typen sind.
Frage: Wie kann ich mithilfe von Protokollen und Protokollerweiterungen den Code zwischen den beiden Klassen reduzieren? Ich möchte nicht wiederholen Code, weil sie so ähnlich sind. Ich habe verschiedene Varianten des Codes versucht, aber ich bleibe stecken. Ich verstehe es nicht gut. Wie kann ich beide Klassen verwenden, um den gleichen Code mit einem Protokoll und einer Protokollerweiterung zu verwenden?
Ich habe meine Frage bearbeitet. Der erste war ein Durcheinander. Ich habe versucht, es einfacher zu machen. –
@JTAppleCalendarforiOSSwift, ok, ich werde meine Antwort später aktualisieren. – OOPer