我已经声明了一个元组数组,如下所示:
var countryFlag: [(flag: String, description: String)] = [("🇺🇸", "United States"), ("🇰🇷", "South Korea"), ("🇵🇭", "Phillipines"), ("🇨🇦", "Canada"), ("🇩🇪", "Germany")]
我正试图使用Text((在HStack中调用并显示这些值,但我的错误是:
使用未解析的标识符"flag"one_answers"description">
这是我的全部代码:
import SwiftUI
import PlaygroundSupport
struct ContentView: View
{
var countryFlag: [(flag: String, description: String)] = [("🇺🇸", "United States"), ("🇰🇷", "South Korea"), ("🇵🇭", "Phillipines"), ("🇨🇦", "Canada"), ("🇩🇪", "Germany")]
var body: some View
{
List(0..<5)
{
item in
HStack
{
Text("(flag)")
Text("(description)")
}
}
}
}
PlaygroundPage.current.setLiveView(ContentView())
List(0..<5) { item in
循环5次,item
从0
到4
取值。这些是countryFlag
数组的索引。用item
订阅countryFlag
,然后它将为您提供一个元组。然后,您可以使用.flag
和.description
访问该元组中的值。
替换:
Text("(flag)")
Text("(description)")
带有:
Text("(countryFlag[item].flag)")
Text("(countryFlag[item].description)")
更好的方法是使用.flag
作为id
来List
您的countryFlag
阵列。
List(countryFlag, id: .flag) { item in
HStack {
Text("(item.flag)")
Text("(item.description)")
}
}
最后,如果在闭包中使用flag, description in
将元组分解为两个变量,则可以使用定义的Text
视图:
List(countryFlag, id: .flag) { flag, description in
HStack {
Text("(flag)")
Text("(description)")
}
}