gpt4 book ai didi

swiftui - 简单的 SwiftUI 列表示例。我究竟做错了什么?

转载 作者:行者123 更新时间:2023-12-02 17:02:38 25 4
gpt4 key购买 nike

我在将字符串数据绑定(bind)到列表内的文本时遇到问题。不确定我到底做错了什么。

enter image description here

最佳答案

这是一个简单的修复。当您将数组传递给 List 时,数组中的元素需要符合 Identifying 协议(protocol)。 String 不符合 Identifying,因此实现此功能的方法是使用 .identified(by:),如下所示:

struct StringList: View {
let strings = ["1234", "5678"]

var body: some View {
List(strings.identified(by: \.self)) { string in
Text(string)
}
}
}

您还可以在 List 中使用 ForEach:

struct StringList: View {
let strings = ["1234", "5678"]

var body: some View {
List {
ForEach(strings.identified(by: \.self)) { string in
Text(string)
}
}
}
}

这两个示例都实现了相同的输出,但第一个更清晰并且需要更少的代码。

更新

从 Xcode Beta 4 开始,identified(by:) 已被弃用,取而代之的是 ListForEach 的特定初始化程序:

struct StringList: View {
let strings = ["1234", "5678"]

var body: some View {
List(strings, id: \.self) { string in
Text(string)
}
}
}
struct StringList: View {
let strings = ["1234", "5678"]

var body: some View {
List {
ForEach(strings, id: \.self) { string in
Text(string)
}
}
}
}

关于swiftui - 简单的 SwiftUI 列表示例。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57031261/

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