【问题标题】:How to solve Fatal Error: Index out of range error in swift?如何解决致命错误:swift中的索引超出范围错误?
【发布时间】:2022-01-19 19:59:17
【问题描述】:
在这段代码中,当迭代位置达到 20 个元素的数组中的第 13 个时,它会因索引超出范围错误而崩溃。
let counterHeaders = headers.count
for value in 0..<(counterHeaders){
if headers[value] == "" {
headers.remove(at: value)
}
}
注意:创建 counterHeaders 变量是为了检查 headers 数组中有多少值
【问题讨论】:
标签:
arrays
swift
for-loop
【解决方案1】:
删除集合中的项目时,您只需要以相反的顺序迭代您的indices。
for value in headers.indices.reversed() {
if headers[value] == "" {
headers.remove(at: value)
}
}
请注意,还有一个变异方法接受称为removeAll(where:) 的谓词:
headers.removeAll(where: \.isEmpty)