有没有办法在使用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)
}
}
答案 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
应保存在其他地方,或者是静态的。