gpt4 book ai didi

swift - 在 SwiftUI 中使用 ForEach 枚举

转载 作者:行者123 更新时间:2023-12-04 08:20:43 24 4
gpt4 key购买 nike

我想知道使用 ForEach 枚举的语法.我正在使用 customID .
这是我的代码:

ForEach(arrayNew.enumerated(), id:\.customID) { (index, item) in

}
更新:
ForEach(Array(arrayNew.enumerated()), id:\.element.customID) { (index, item) in
Text(String(index) + item)
}

最佳答案

假设我们有一个 Array类型的对象 Item :

struct Item {
let customID: Int
let value: String
}

let arrayNew = [
Item(customID: 1, value: "1"),
Item(customID: 23, value: "12"),
Item(customID: 2, value: "32")
]
现在,如果我们想同时访问 offsetitem从数组中,我们需要使用 enumerated() :
arrayNew.enumerated()
但是,它返回 EnumeratedSequence (和 不是 Array ):
@inlinable public func enumerated() -> EnumeratedSequence<Array<Element>>
如果我们看一下 ForEach 的签名,我们可以看到它期望 RandomAccessCollection :
public struct ForEach<Data, ID, Content> where Data : RandomAccessCollection, ID : Hashable
这里的问题是 EnumeratedSequence不符合 RandomAccessCollection .
但是 Array确实 - 我们只需要转换 enumerated() 的结果回到 Array :
Array(arrayNew.enumerated())
现在,我们可以直接在 ForEach 中使用它:
ForEach(Array(arrayNew.enumerated()), id: \.element.customID) { offset, item in
Text("\(offset) \(item.customID) \(item.value)")
}

关于swift - 在 SwiftUI 中使用 ForEach 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65512565/

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