Можно ли добавлять объекты подкласса в статический массив внутри родительского класса? Я хотел бы запустить функцию во всех созданных экземплярах. Другой вопрос SO описывает возможность перебора массива для вызова функции для каждого экземпляра, и я думаю, что это конечный результат, который мне бы тоже хотелось, но моя проблема даже в том, что экземпляры попадают в статический массив, который отслеживает все экземпляры.Добавление объектов в статический массив в swift
Конечно мой код более модульным, но здесь это упрощенное представление кода и иерархии:
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 каждого вида. Возможно, я думаю неправильно. –
Ваш код не имеет смысла - нет класса «Животные», поэтому из чего все эти другие классы? – matt