【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      相关资源
      最近更新 更多