gpt4 book ai didi

SwiftUI:随机 "Extra argument in call"错误

转载 作者:行者123 更新时间:2023-12-03 07:34:54 25 4
gpt4 key购买 nike

所以我正在尝试学习 SwiftUI 和 Combine。我通常通过制作一个简单的小费计算器来开始新技术。

我似乎收到了一个随机的“通话中的额外参数”。编码时出错
这是我的 SwiftUI 文件

import SwiftUI

internal enum ReceiptRowType {
case subtotal
case tax
case total
case tip
case grandTotal
}

struct TipView: View {
@ObservedObject internal var adBannerView: BannerAdView = BannerAdView()
@ObservedObject internal var receiptViewModel: ReceiptViewModel

private let percentageFormatter: NumberFormatter = {
let f = NumberFormatter()
f.numberStyle = .percent
return f
}()

var body: some View {
ZStack {
Color.white
.scaledToFit()

VStack {
if adBannerView.adHasLoaded {
adBannerView
.frame(maxHeight: adBannerView.adHeight)
.animation(.easeInOut(duration: 2.0))
}

BorderView()

Text(ARCHLocalizedStrings.receipt)
.foregroundColor(Color.gray)

BorderView()

HStack {
Spacer()

Button(action: {
self.receiptViewModel.addNewReceiptItem()
}) {
Text(ARCHLocalizedStrings.buttonTitleAddItem)
}
}

BorderView()

ScrollView {
ForEach(receiptViewModel.receiptItems) { receiptItem in
ItemView(receiptItem: receiptItem)

if receiptItem != self.receiptViewModel.receiptItems.last {
Divider()
}
}
}

BorderView()

BottomOfReceiptRow(receiptViewModel: receiptViewModel,
type: ReceiptRowType.subtotal,
title: ARCHLocalizedStrings.subtotal)

BottomOfReceiptRow(receiptViewModel: receiptViewModel,
type: ReceiptRowType.tax,
title: ARCHLocalizedStrings.tax)
}
.padding(.horizontal, ARCHSwiftUILayoutConstants.defaultPaddingAndSpacing)
}
}
}

struct BorderView: View {
var body: some View {
Text("================================")
.lineLimit(1)
.foregroundColor(Color.gray)
.minimumScaleFactor(0.5)
}
}

struct ItemView: View {
@ObservedObject var receiptItem: ReceiptItemViewModel

var body: some View {
HStack {
TextField(receiptItem.name, text: $receiptItem.name)
.textFieldStyle(RoundedBorderTextFieldStyle())
.foregroundColor(Color.gray)
.multilineTextAlignment(TextAlignment.leading)

TextField("Price", value: $receiptItem.price, formatter: ARCHUtilities.currencyFormatter)
.textFieldStyle(RoundedBorderTextFieldStyle())
.foregroundColor(Color.gray)
.multilineTextAlignment(TextAlignment.trailing)
.minimumScaleFactor(0.5)
.frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
}
}
}

struct BottomOfReceiptRow: View {
@ObservedObject internal var receiptViewModel: ReceiptViewModel

internal var type: ReceiptRowType
internal var title: String

var body: some View {
HStack {
Spacer()

Text(title)
.foregroundColor(Color.gray)

if type == ReceiptRowType.subtotal {
Text("\(receiptViewModel.subtotal)")
.foregroundColor(Color.gray)
.frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
} else if type == ReceiptRowType.tax {
Text("\(receiptViewModel.taxRate)")
.foregroundColor(Color.gray)
.frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
} else if type == ReceiptRowType.total {
Text("\(receiptViewModel.total)")
.foregroundColor(Color.gray)
.frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
} else if type == ReceiptRowType.tip {

} else if type == ReceiptRowType.grandTotal {
Text("\(receiptViewModel.grandTotal)")
.foregroundColor(Color.gray)
.frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
}
}
}
}

struct TipView_Previews: PreviewProvider {
static var previews: some View {
TipView(receiptViewModel: ReceiptViewModel())
}
}

但是,如果我在 TipView 主体(任何 View )上添加另一个 View ,我似乎会收到“调用中的额外参数”错误。

Picture of error here

有谁知道发生了什么?

最佳答案

尝试围绕您的观点创建一个 Group { }。 Swiftui 中只允许 10 个...使用组,您可以添加更多。或使用 subview ...(也会更干净的代码)

关于SwiftUI:随机 "Extra argument in call"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61178868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com