swift - Swift / SwiftUI:为什么我不能覆盖返回某些视图的方法?
问题描述
在下面的例子中
import SwiftUI
class AbstractOverride {
open func configurationView() -> AnyView {
if Features.TEST_VERSION {
return AnyView(Text("override configurationView()"))
} else {
return AnyView(EmptyView())
}
}
open func someConfigurationView() -> some View {
if Features.TEST_VERSION {
return AnyView(Text("override someConfigurationView()"))
} else {
return AnyView(EmptyView())
}
}
}
class SubclassOverride: AbstractOverride {
override func configurationView() -> AnyView { // no compiler error
return AnyView(Text("Test"))
}
override func someConfigurationView() -> some View { // compiler error "Method does not override any method from its superclass"
return AnyView(Text("Test"))
}
}
我compiler error "Method does not override any method from its superclass"
在override func someConfigurationView() -> some View
.
没有编译器错误返回AnyView
。
谁能解释这里发生了什么?为什么 Swift 不承认方法签名是相同的?
这是 iOS 13,Xcode 11.5
解决方案
推荐阅读
- javascript - 如何将包含对象数组的json对象转换为url编码格式
- python - cv2.matchtemplate opencv 内置函数需要不希望的时间来执行
- python - Python: OpenCV findHomography inputs
- android-studio - 在 API 19 上出现 UnsatisfiedLinkError - 高级分析已禁用
- python - object has no attribute error in gui
- vba - VBA:对于循环隐藏行不起作用
- python - mySQL 多行动态插入 Python
- javascript - JS bind() 做什么来防止我的代码被重新绑定到另一个 this 上下文?
- angular - 从 Angular 2 前端到 springboot 服务的 POST 请求在 Chrome 浏览器中失败
- angular - 尝试使用 rxjs 和 angular 2 创建无限滚动