gpt4 book ai didi

ios - 无法从 UIView 扩展调用方法

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:35 25 4
gpt4 key购买 nike

我试图通过扩展我的自定义 UIView 之一来调用方法,但我收到错误消息“‘MyCustomView’类型的值没有成员‘testMethod’”。下面是我的代码

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()
}
}
}

显然我可以通过多种不同的方式实现此功能,但我更感兴趣的是为什么这段代码无法编译,因为它在我看来在逻辑上是正确的。非常感谢所有帮助。

最佳答案

这可能与 UIView 是一个 Objective-C 类以及方法调度与纯 Swift 类略有不同这一事实有关。

您可能必须使用动态指令声明扩展的方法以满足 Obj-C 的方法调度机制。

(请注意,我还没有尝试过)

关于ios - 无法从 UIView 扩展调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38511346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com