Функции внутри Structs - нет доступных ошибок инициализаторов Swift - PullRequest
0 голосов
/ 25 апреля 2018

Следуя многочисленным советам SO по созданию моего первого приложения, у меня есть 2 структуры .... 1 для "WorkoutExercise" и одна для "WorkoutExerciseGenerator".

Я пытаюсь проверить мой генератор, но у меня появляется ошибка недоступных инициализаторов ...

Вот структура 1:

struct WorkoutExercise {

    let name : String
    let reps : Int

}

Вот структура 2 с небольшим тестом и печатью внизу (что не работает):

struct WorkoutExerciseGenerator {

    let name: String
    let maxReps: Int

    func generate() -> WorkoutExercise {
        return WorkoutExercise(
            name: name,
            reps: Int(arc4random_uniform(UInt32(maxReps))))
    }

var test = WorkoutExerciseGenerator(name: "squat", maxReps: 10)

    print (test.generate())
}

Мое мышление здесь (после небольшого исследования здесь https://www.natashatherobot.com/mutating-functions-swift-structs/) заключается в том, что я правильно вставляю параметры для генератора ("squat" и "maxReps: 10"), поэтому не уверен, почему это не будет работа? (В этом случае создание приседа + случайное количество повторений <10 из "var = test"). </p>

После этого я попытаюсь использовать массив имен упражнений / максимальных значений повторений, чтобы сохранить все свои упражнения, и произвольно взять 3-6 упражнений, чтобы создать совершенно произвольную тренировку, но я думаю (надеюсь), что смогу решить это. если я получу этот бит

1 Ответ

0 голосов
/ 25 апреля 2018

Переместите переменную test и оператор print из структуры.

struct WorkoutExerciseGenerator {
    let name: String
    let maxReps: Int

    func generate() -> WorkoutExercise {
        return WorkoutExercise(
            name: name,
            reps: Int(arc4random_uniform(UInt32(maxReps))))
    }
}

var test = WorkoutExerciseGenerator(name: "squat", maxReps: 10)
print (test.generate())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...