在SwiftUI中使用ForEach循环导致程序崩溃

时间:2019-10-28 01:50:53

标签: swiftui

我是Swift和SwiftUI的初学者。

我在PeopleModel.swift文件中设置示例数据模型,这是该代码:

import Foundation

struct People {

    var name : String

    static let demoPeople = [
        People(name:"Stephen"),
        People(name:"John"),
        People(name:"Jack")]

}

要使用数据模型,我想我会尝试使用以下代码遍历列表:

import SwiftUI

struct ListPersonView: View {

    let testData = People.demoPeople

    var body: some View {

        VStack {
            ForEach((0...testData.count), id: \.self) {result in
                Text( self.testData[result].name)
            }

            Text("Ready or not, here I come!")

        }

    }//View

}//struct

struct ListPersonView_Previews: PreviewProvider {
    static var previews: some View {
        ListPersonView()
    }
}

运行预览器时,程序崩溃。我必须错过一些简单的事情,但会欣赏一个我做错了的想法。谢谢!

1 个答案:

答案 0 :(得分:0)

ForEach循环中的范围是开放的,因此,当self.testData[result].name等于{{1}的长度时,尝试访问result时将获得超出范围的异常}。

将范围更改为testData应该可以解决您的问题。