Structs中的函数 - 没有可访问的初始化程序错误Swift

时间:2018-04-25 09:03:23

标签: ios swift swift4

在构建我的第一个应用程序时,根据SO的大量建议,我有2个结构.... 1个用于" WorkoutExercise"和#34; 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/)是我正确插入了生成器的参数("深蹲"" maxReps:10& #34;)所以不确定为什么这不起作用? (在这种情况下,生成深蹲+随机数量的代表< 10来自" var = test")。

在此之后,我将尝试使用一系列运动名称/最大重复值来存储我的所有练习并随机抓取3到6个练习来创建一个完全随机的训练,但我想(希望)我可以工作如果我得到这一点

1 个答案:

答案 0 :(得分:2)

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())