【发布时间】:2022-06-22 19:40:25
【问题描述】:
当视图调用getBadge()方法时,如果Status.self在运行时是OpenAccessPointState,为什么它使用扩展中的函数没有Status == OpenAccessPointState条件?
代码如下:
protocol BadgeStateViewRepresentable: Statusable {
func getBadge() -> BadgeWithText?
}
protocol Statusable {
associatedtype Status: AccessPointState
var status: Status { get }
}
extension View where Self: BadgeStateViewRepresentable {
func getBadge() -> BadgeWithText? {
return nil
}
}
extension View where Self: BadgeStateViewRepresentable, Status == OpenAccessPointState {
func getBadge() -> BadgeWithText? {
return BadgeWithText()
}
}
struct SomeDeviceDetailsView: View, BadgeStateViewRepresentable {
var status: some AccessPointState {
return OpenAccessPointState()
}
var body: some View {
getBadge()
}
}
有没有办法让它工作?
【问题讨论】:
标签: ios swift swiftui protocols