サブクラス化されたオブジェクトを親クラスの静的配列に追加することは可能ですか?作成されたすべてのインスタンスに対して関数を実行したいと思います。別のSOの質問は、各インスタンスで関数を呼び出すために配列をループすることができると私はこれも私が望む最終結果だと思うが、私の問題はすべてのインスタンスを追跡する静的配列にインスタンスを取得しています。スワイプの静的配列にオブジェクトを追加する
もちろん私のコードは、よりモジュールであるが、ここでは、コードと階層の簡略図である。
class Jungle {
static var jungle: [Animals] = []
}
class Tigers: Animals {
static var tigerPopulation: Int = 0
override init(name:String){
super.init(name: name)
Tigers.tigerPopulation += 1
}
deinit {
Tigers.tigerPopulation -= 1
}
}
class Monkeys: Animals {
static var monkeysPopulation: Int = 0
override init(name: String){
super.init(name: name)
Monkeys.monkeysPopulation += 1
}
deinit {
Monkeys.monkeysPopulation -= 1
}
}
class Snakes: Animals {
static var snakePopulation: Int = 0
override init(name: String){
super.init(name: name)
Snakes.snakePopulation += 1
}
deinit {
Snakes.snakePopulation -= 1
}
}
私は彼らのすべてがジャングルからサブクラス化しますので、私は最初のジャングルクラスを作成しておく必要があり感覚を得ます私は推測するが、私はまだインスタンスを配列に取得する方法を困惑している。
ちょうど 'Jungle.jungle.append'文句を言わない仕事:
次に、あなたがこのような何かあなたのジャングルのオブジェクトを使用したいですか? – Tj3n
@ Tj3nもし私が各種のinit関数の中に入れたら、 "今作成されたばかりのインスタンスを追加する"とはどういう意味でしょうか?私はそれを書きましたが、各種のinit関数の中で何を追加するかについては正しく理解できませんでした。私はすべて一緒に間違って考えているかもしれません。 –
あなたのコードは意味をなさない - Animalsクラスがないので、これらの他のクラスは何から派生していますか? – matt