Это потому, что вы никогда не вводите вас для казни. Попробуйте установить точку останова в цикле for.

знаюсь, что чувствую себя немного глупо, но после нескольких часов попыток я должен спросить:

class AGE {

     static func getAge() -> Int {

        var age: Int

        for items in dataArray {
            if items.name == "Steven" {
                age = items.age
            }

            else {
                age = 0
            }
        }

        // variable "age" used before being initialized - WHY?
        return age
    }
}

Я даже пытался установитьvar age: Int = 0 в начале, но потом функцияreturn 0, Я надеюсь, что кто-то может простить мне этот основной вопрос на данный момент. Любая помощь приветствуется.

Чтобы было понятнее, как выглядит dataArray:

struct Person {
    let name: String
    let lastName: String
    let age: Int
}

let person1: Person  = Person(name: "Steven", lastName: "miller", age: 23)
let person2: Person = Person(name: "jana", lastName: "drexler", age: 31)
let person3: Person = Person(name: "hanna", lastName: "montana", age: 56)

var dataArray = [Person]()

dataArray.append(person1)
dataArray.append(person2)
dataArray.append(person3)

Обновить

Пытаясь собрать суть всех ответов, решение должно выглядеть так: class AGE {

    static func getAge() ->Int {

        var age: Int = 0

        for items in dataArray {
            while items.firstName == "Steven" {
                age = items.age

                return age

                break       // This break will never be executed because of return.
            }
            break           // setting the break here, the loop will break after first round
        }
        return age
    }
}

Этот код работает (со вторым разрывом), но только для первого цикла. Остается вопрос, как настроить возврат и разрыв после того, как цикл достигнет своей цели. Возврат или остановка помешают другому шагу.

Ответы на вопрос(4)

Ваш ответ на вопрос