我收到错误:尝试在另一个视图中显示从列表中选择得项目时,“泛型结构”ForEach“要求”Set“符合”RandomAccessCollection.“”
import SwiftUI
struct ExSetView: View {
@Environment(\.managedObjectContext) var viewContext
@Environment(\.dismiss) var dismiss
@State var selectedItems = Set<Exercise>()
var body: some View {
NavigationView {
VStack (alignment: .leading) {
Text("Set Count: \(selectedItems.count)")
ForEach(selectedItems) { e in
NavigationLink(
destination: ExSetInputView(exset: e),
label: {
Text(e.exercisename)
}
)}
}
}
}
}
错误位于ForEach(selectedItems) { e in
行
我不知道如何解决这个问题。最后我只想通过exercisename属性将所选项目显示为导航链接。有没有其他不使用For Each的方法?这个问题是因为它是一个集合而不是数组吗?任何帮助都将不胜感激!!!
1条答案
按热度按时间mbzjlibv1#
ForEach
需要有序数据源,而Set
根据定义是无序的。一个简单的解决方案是对集合进行排序,例如按
exercisename
sorted
的结果是符合'RandomAccessCollection
的数组。