我试图了解_ConditionalContent
的内部工作原理,但我无法为其实现一个ResultBuilder.以下是一些用于_ConditionalContent
的ResultBuilder的定义:
static func buildEither<T: View, F: View>(first: T) -> _ConditionalContent<T, F>
这对我来说没有意义,因为F
是如何确定的?它不能被类型擦除为AnyView
,因为我已经看到两个类型参数都是具体的SwiftUI视图,例如._ConditionalContent<Text, Button>
.唯一有意义的是,与其他buildEither(second:)
函数一起是所确定的_ConditionalContent
的最终类型.
我不能得到这个工作的粗略版本,所以如果有人能向我解释如何实现这using result builders,请让我知道:
struct ConditionalConent<T: View, F: View> {
let trueContent: T
let falseContent: F
}
@resultBuilder
struct ConditionalContentBuilder {
static func buildBlock<V: View>(_ content: V) -> V {
return content
}
static func buildEither<T: View, F: View>(first: T) -> ConditionalContent<T, F> {
// ... how is ConditionalContent created?
}
static func buildEither<T: View, F: View>(second: F) -> ConditionalContent<T, F> {
// ... how is ConditionalContent created?
}
}