Próbuję wywołać metodę przez rozszerzenie jednego z moich niestandardowych UIViews, ale pojawia się błąd "Wartość typu" MyCustomView "nie ma członka" testMethod "". Poniżej jest mój kodNie można wywołać metody z rozszerzenia UIView
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()
}
}
}
Oczywiście mogłaby wdrożyć tę funkcjonalność kilka różnych sposobów, ale jestem bardziej zainteresowany dlaczego konkretnie ten kod nie będzie kompilować, ponieważ wydaje się logicznie poprawne do mnie. Cała pomoc jest bardzo doceniana.
Twój kod kompiluje się dobrze dla mnie, poza brakującym '}' – dan
Naprawiono klamrę, dziękuję. To jest takie dziwne. Próbowałem usunąć wyprowadzone dane i zrezygnować z Xcode i zrestartować, ale nadal nie będzie się kompilować. Musi to być coś z istniejącą architekturą, a następnie poprawnie @dan? – Amloelxer
Przeniesienie rozszerzenia z oddzielnego pliku do tej samej klasy co MyCustomView rozwiązuje problem, ale nie jest to coś, co wolałbym robić w architekturze, i niestety wciąż nie odpowiada na pytanie, dlaczego nie skompiluje się w pierwszej kolejności. . – Amloelxer