Ios SwiftUI中带循环的动态按钮

Ios SwiftUI中带循环的动态按钮,ios,swift,swiftui,xcode11,Ios,Swift,Swiftui,Xcode11,我正在将SwiftUI与Xcode-beta-4一起使用 我想用ForEach创建动态按钮。我正在使用以下代码行: struct Result { var id = UUID() var score: Int } struct ContentView : View { let results = [Result(score: 8), Result(score: 5), Result(score: 10)] var body: some View {

我正在将
SwiftUI
Xcode-beta-4
一起使用

我想用
ForEach
创建动态按钮。我正在使用以下代码行:

struct Result {
    var id = UUID()
    var score: Int
}

struct ContentView : View {
    let results = [Result(score: 8), Result(score: 5), Result(score: 10)]

    var body: some View {
        VStack {
            ForEach(results.identified(by: \.id)) { result in
                Button(action: {
                    print(result.score)
                }){
                    Text(result.score)
                }
            }
        }
    }
}
但是
Xcode
无法编译此代码


当我将
文本(result.score)
更改为按钮样式的
文本(“test”)
时,现在Xcode可以编译它尝试使用文本(\(result.score)”)

打印
Int
文本(\(result.score)”

还要记住,
ForEach
语法有一点变化(Beta 5)。
现在应该是:
results.identified(by:\.id)


由于result.score是Int,您必须将其转换为字符串才能在Text()中显示。将文本按钮代码更改为以下代码:

Text("\(result.score)")

可先将问题类型转换为字符串,然后在文本中使用。喜欢文字(“(result.score)”)谢谢!是的,这是正确的。但如果我把分数改为
字符串
,我仍然必须用
双引号
来打印它,我不知道你的意思。我刚测试过。如果我将score更改为
字符串
,效果很好:
文本(result.score)
。您在行尾遗漏了一个
。这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-原始帖子中没有任何问题,只是抱怨他在使用Text(result.score)时无法编译,答案是Text()希望看到字符串,因此他应该使用Text(\(result.score)”。
Try
部分听起来你不确定,答案本身有点短,这就是它进入LQP审查队列的原因,这就是我将其标记为
不提供答案的原因。如果使用文本函数打印需要一个字符串,该字符串可以用格式化结构“Text”(\(result.score)”)“
创建,那么没有人会发现这个答案存在合理的问题。但到目前为止,情况有点可疑。
Text("\(result.score)")