Сбой программы с использованием цикла ForEach в SwiftUI - PullRequest
0 голосов
/ 28 октября 2019

Я новичок в 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 голосов
/ 28 октября 2019

Диапазон в вашем цикле ForEach открыт, поэтому вы получите исключение вне границ при попытке доступа к self.testData[result].name, когда result равен длине testData.

Изменение вашего диапазона на 0..<testData.count должно решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...