微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SwiftUI致命错误:索引超出范围:文件Swift / ContiguousArrayBuffer.swift

如何解决SwiftUI致命错误:索引超出范围:文件Swift / ContiguousArrayBuffer.swift

我有一个环境对象,它是一个数组,在我的设置页面中有一个面板,用户可以在其中添加/删除数组中的值...以下是为用户直观显示的数组中的项目列表:

ScrollView {
    vstack {
        ForEach(self.env.numbers.indices,id: \.self) { number in
            ZStack {
                HStack {
                    Text("#\(number +  1): ")
                        .font(Font.custom(K.font.montserratMedium,size: 17.0))
                        .foregroundColor(Color(K.SettingsTextColor))
                    
//                                            Spacer()
                    
                    NumberTextField(self.env.numbers[number],text: self.$env.numbers[number])
        
                }
                
                
                
            }
            
        }
    }
}

在我视图的底部,有一个切换按钮,用于更改数组中的项目数:

Stepper(onIncrement: {
    
    self.env.numbers.append("12345")
    print("default number should be added")
    print(self.env.numbers.indices)
    print(self.env.numbers)
    print("count = \(self.env.numbers.count)")
    
},onDecrement: {
            
            if self.env.numbers.count != 0 {
                print("number should be removed")
                self.env.numbers.removeLast(1)
//              also tried self.env.numbers = self.env.numbers.droplast() but this didnt work
                print(self.env.numbers.indices)
                print(self.env.numbers)
                print("count = \(self.env.numbers.count)")
                
}

NumberTextField视图是一个UIKit UITextField包装器,似乎可以正常工作。直到我尝试减少步进器,并且得到索引超出范围的错误(这出乎意料地显示了在应用程序委托中发生的错误)之前,所有与此相关的事情都可以正常工作...有什么办法解决此问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。