Swift 将表达式分解为子表达式
如果我编写以下代码,则会收到以下错误消息: 编译器无法在合理时间内对此表达式进行类型检查;尝试将表达式拆分为不同的子表达式 如果我删除If/else语句,它就会工作。但我想先在这里显示值或货币,具体取决于货币。那么,您将如何分解此代码Swift 将表达式分解为子表达式,swift,xcode,swiftui,Swift,Xcode,Swiftui,如果我编写以下代码,则会收到以下错误消息: 编译器无法在合理时间内对此表达式进行类型检查;尝试将表达式拆分为不同的子表达式 如果我删除If/else语句,它就会工作。但我想先在这里显示值或货币,具体取决于货币。那么,您将如何分解此代码 if item.currency == "%" { Text(item.currency) .font(.system(size: 14, design: .rounded)) .padding(.bot
if item.currency == "%" {
Text(item.currency)
.font(.system(size: 14, design: .rounded))
.padding(.bottom, 0)
.frame(width: 100, alignment: .center)
Text(item.value)
.font(.system(size: 24, design: .rounded))
.fontWeight(.heavy)
.frame(width: 100, alignment: .center)
} else {
Text(item.value)
.font(.system(size: 24, design: .rounded))
.fontWeight(.heavy)
.frame(width: 100, alignment: .center)
Text(item.currency)
.font(.system(size: 14, design: .rounded))
.padding(.bottom, 0)
.frame(width: 100, alignment: .center)
}
如果我使用提供的快照作为视图
body
的唯一内容,则没有错误,因此我假设它是更复杂的视图层次结构的一部分。对于这种情况,我更喜欢将这种结构分解为显式视图属性,如下例所示
var body: some View {
ItemCurrencyView // << usage
}
private var ItemCurrencyView: some View { // < separated view builder
Group {
if item.currency == "%" {
Text(item.currency)
.font(.system(size: 14, design: .rounded))
.padding(.bottom, 0)
.frame(width: 100, alignment: .center)
Text(item.value)
.font(.system(size: 24, design: .rounded))
.fontWeight(.heavy)
.frame(width: 100, alignment: .center)
} else {
Text(item.value)
.font(.system(size: 24, design: .rounded))
.fontWeight(.heavy)
.frame(width: 100, alignment: .center)
Text(item.currency)
.font(.system(size: 14, design: .rounded))
.padding(.bottom, 0)
.frame(width: 100, alignment: .center)
}
}
}
var主体:一些视图{
ItemCurrencyView//