我想要一个类的实例方法来创建它自己的一个实例 并将它追加到一个数组。类创建它自己的一个实例
我尝试这样做:
var vampireArray: [Vampire] = []
class Vampire {
func createSelf() {
vampireArray.append(Vampire())
}
}
但我得到一个奇怪的错误控制台上像(lldb)
任何想法,为什么?
我想要一个类的实例方法来创建它自己的一个实例 并将它追加到一个数组。类创建它自己的一个实例
我尝试这样做:
var vampireArray: [Vampire] = []
class Vampire {
func createSelf() {
vampireArray.append(Vampire())
}
}
但我得到一个奇怪的错误控制台上像(lldb)
任何想法,为什么?
即使不知道该代码的上下文,一般来说,创建一个类的实例并将其追加到类的范围之外的数组是不好的。
请改为将vampireArray.append(Vampire())
这一行放在您原本计划投入的位置createSelf()
。
如果你想坚持这条路线,它会像createSelf()
应该是一个静态方法和var vampireArray: [Vampire] = []
也应该是一个静态变量内类的方法。
编辑:
如果你想要做的就是跟踪吸血鬼的数量,这可能是一个很好的解决方案:
class Vampire {
static var VampireCount = 0
init(){
Vampire.VampireCount += 1
}
}
然后,每当你想访问计数,只需使用Vampire.VampireCount
这个想法是,当一个吸血鬼对象createSelf另一个吸血鬼对象被创建。阵列只是保持吸血鬼的数量。 –
@ManosSerifios然而,创建另一个吸血鬼对象是初始化程序的工作。你用'吸血鬼()'来做到这一点。如果你想用你新创造的吸血鬼做些什么,你应该在你吸血鬼阵列的范围内做。如果数组完全保持计数,那么也许应该将其更改为整数。 – TheBrownCoder
@ManosSerifios我编辑了我的答案,提出了一个可能的解决方案 – TheBrownCoder
向我们显示您的错误消息 - 此代码在Playground中工作,所以您的问题在别处。你也应该解释你实际想要达到的*,我们可能会建议其他解决方案,而不是你目前的尝试。 – Moritz