Ich versuche, eine Methode aufzurufen, indem Sie eine meiner benutzerdefinierten UIViews erweitern, aber ich erhalte den Fehler "Wert des Typs 'MyCustomView' hat kein Mitglied 'testMethod'". Unten ist mein CodeIch kann nicht Methode aus UIView-Erweiterung aufrufen
extension MyCustomView {
func testMethod() {
//do stuff here
}
}
//in a separate class from the extension
class func onMoreOptionsButtonPressed(currentViewController:UIViewController) {
for view in currentViewController.view.subviews {
if view.isKindOfClass(MyCustomView) {
let myCustomView = view as! MyCustomView
myCustomView.testMethod()
}
}
}
Offensichtlich konnte ich diese Funktionalität eine Reihe von verschiedenen Arten implementieren, aber ich bin mehr daran interessiert, warum dieser Code speziell nicht kompiliert werden, weil es mir logisch richtig zu sein scheint. Alle Hilfe wird sehr geschätzt.
Ihr Code kompiliert für mich andere als die fehlende '}' – dan
Fixed die Klammer danke. Das ist so komisch. Ich habe versucht, abgeleitete Daten zu löschen und Xcode und Neustart zu beenden, aber es wird immer noch nicht kompilieren. Es muss etwas mit der vorhandenen Architektur dann richtig @dan sein? – Amloelxer
Das Verschieben der Erweiterung von einer eigenen separaten Datei in die gleiche Klasse wie MyCustomView löst das Problem, aber ich würde es vorziehen, dies architektonisch zu tun, und beantwortet leider immer noch nicht meine Frage, warum es überhaupt nicht kompiliert wird . – Amloelxer