我想通过扩展我的自定义UIViews之一来调用方法,但我得到错误“类型'MyCustomView'的值没有成员'testMethod'”。下面是我的代码无法从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()
}
}
}
很显然,我可以实现这个功能了一堆不同的方式,但我更感兴趣的是,为什么这个特别的代码将无法编译,因为它似乎在逻辑上正确的给我。所有的帮助非常感谢。
你的代码除了缺少''' – dan
以外,我编译好了修复了大括号谢谢。这真是太奇怪了。我尝试删除派生的数据,并退出Xcode并重新启动,但它仍然不会编译。它必须是现有架构的东西,然后右@dan? – Amloelxer
将扩展从它自己的单独文件移动到与MyCustomView相同的类可解决此问题,但这不是我希望在架构上执行的操作,但不幸的是,仍然不能回答我为什么不会首先编译的问题。 – Amloelxer