初始化时将对象添加到列表中

时间:2017-07-27 13:19:00

标签: swift object struct

有没有办法在使用Swift创建对象时将对象添加到列表中?我认为你可以通过.add(this)用Java做到这一点,但我不确定如何在Swift中做到这一点。这是我现在的代码。当列表保持为空时,执行追加似乎不起作用。

public struct Candle {
    let id: Int
    let name: String
    let burning: Bool
    let type: CandleType

    var differentCandles: [Candle] = []

    init(name: String, burning: Bool, candleType: CandleType) {
        self.name = name
        self.burning = burning
        self.type = candleType
        self.id = differentCandles.count + 1
        differentCandles.append(self)
    }
}

2 个答案:

答案 0 :(得分:4)

您可以尝试以下保存附加数据

public struct Candle {
  let id: Int
  let name: String
  let burning: Bool
  let type: CandleType

  static var differentCandles: [Candle] = []

  init(name: String, burning: Bool, candleType: CandleType) {
      self.name = name
      self.burning = burning
      self.type = candleType
      self.id = Candle.differentCandles.count + 1
      Candle.differentCandles.append(self)
  }
}

答案 1 :(得分:2)

方法.append(item)是将项添加到数组的好方法,但在您的情况下,您将创建一个会泄露应用程序的保留周期。

你的var differentCandles应保存在其他地方,或者是静态的。