我是Swift和iOS编程的新手,对类和对象只有一个粗略的了解。

以下是相关代码:

class Step {
    var notation: String
    init (notation: String) {
        self.notation = notation
    }
}

class AlgorithmMaker {
    let F = Step(notation: "F")
    let Fi = Step(notation: "F'")
    let F2 = Step(notation: "F2")
    var frontArray = [F, Fi, F2]
}


我正在尝试从AlgorithmMaker类内的“ Step”类创建对象数组。但是,Xcode一直给我错误:

'AlgorithmMaker.Type'没有名为'F'的成员

最佳答案

当您初始化类成员时,当前作用域就是类作用域,所以当您执行

var frontArray = [F, Fi, F2]


你实际上在做

var frontArray = [self.F, self.Fi, self.F2]


self是此范围内的类本身,即AlgorithmMaker

作为解决方案,您可以使用初始化程序并执行

class AlgorithmMaker {
  let f = Step(notation: "F")
  let fi = Step(notation: "F'")
  let f2 = Step(notation: "F2")
  var frontArray: [Step]

  init() {
    frontArray = [f, fi, f2]
  }
}

10-08 01:06