【发布时间】:2020-12-13 21:12:00
【问题描述】:
我已经阅读了几个解决这个问题的方法,我相信我根据建议做的正确,但是这个简单的代码仍然崩溃。
import SwiftUI
struct AnItem : Identifiable {
let id = UUID()
var text: String
}
struct ContentView: View {
@State private var items : [AnItem] = [AnItem(text: "A"), AnItem(text: "B"), AnItem(text: "C")]
var body: some View {
List () {
ForEach (0 ..< items.count) {
index in
TextField("test", text: $items[index].text)
}.onDelete(perform: deleteItem)
}
}
private func deleteItem(at indexSet: IndexSet) {
self.items.remove(atOffsets: indexSet)
}
}
任何人都有解决方法的想法,或者我可能只是做错了。崩溃说
Fatal error: Index out of range: file Swift/ContiguousArrayBuffer.swift, line 444
正如其他人所说,只是一个文本小部件就可以正常工作。这似乎是通过使用 TextField 引起的。
【问题讨论】:
-
您需要使用文本字段吗?或者我可以将其更改为更适合您的解决方案吗?
-
不,它需要是一个 TextField。我知道它适用于 Text。