Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 将表达式分解为子表达式_Swift_Xcode_Swiftui - Fatal编程技术网

Swift 将表达式分解为子表达式

Swift 将表达式分解为子表达式,swift,xcode,swiftui,Swift,Xcode,Swiftui,如果我编写以下代码,则会收到以下错误消息: 编译器无法在合理时间内对此表达式进行类型检查;尝试将表达式拆分为不同的子表达式 如果我删除If/else语句,它就会工作。但我想先在这里显示值或货币,具体取决于货币。那么,您将如何分解此代码 if item.currency == "%" { Text(item.currency) .font(.system(size: 14, design: .rounded)) .padding(.bot

如果我编写以下代码,则会收到以下错误消息:

编译器无法在合理时间内对此表达式进行类型检查;尝试将表达式拆分为不同的子表达式

如果我删除If/else语句,它就会工作。但我想先在这里显示值或货币,具体取决于货币。那么,您将如何分解此代码

 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//