为什么我会收到此错误消息 ( "Instance method 'appendInterpolation(_:formatter:)' requires that 'Any' inherit



我试图在我的应用程序中创建一个作为排行榜的列表。当点击另一个主视图上的按钮时,它应该添加一个新值。然而,我一直得到这个错误,我不知道为什么。下面是列表视图的代码:

"

struct scoreView: View {
@Binding var scoreTracker: Int
@Binding var gameTracker: Int
@Binding var gameScores: [Any]
@State var counter = 0
var body: some View {
Text("Scores: ")

VStack {
List {
ForEach(1..<gameTracker) {
Text("Game ($0): (gameScores[gameTracker]) ")
}
}

}
}
}

"我在我的contentView上创建了一个数组,在按钮被点击一定次数后附加一个值。然而,当我尝试在列表文本中插入该值时,我收到了这个错误。这怎么可能解决呢?

这是一种类型安全警告。字符串插值需要一个字符串可转换对象。任何对象都可以表示为字符串,但如果没有显式实现,它将是关于类或结构的信息,名称,地址等。这很可能不是你想在字符串上看到的,这就是为什么会出现这个错误。

您可以使用String(describing::

将其静音。
struct scoreView: View {
@Binding var scoreTracker: Int
@Binding var gameTracker: Int
@Binding var gameScores: [Any]
@State var counter = 0
var body: some View {
Text("Scores: ")

VStack {
List {
ForEach(1..<gameTracker) {
Text("Game ($0): (String(describing: gameScores[gameTracker])) ")
}
}

}
}
}

最新更新