Govind Rai Govind Rai - 5 months ago 15
Swift Question

count number of instances of a class swift

How do you count the number of instances of a class in Swift? I have the following class:

class car {
static var carPopulation: Int = 0
var color: String
var capacity: Int
var driver: Bool?
var carOn: Bool = false
init (carColor: String, carCapacity: Int) {
self.capacity = carCapacity
self.color = carColor
carPopulation ++ //##########GIVES ME ERROR#############
}
func startCar() {
self.carOn = true
}
}

class raceCar : car {
var nitro: Bool
init(carColor: String, carCapacity: Int, hasNitro: Bool) {
self.nitro = hasNitro
super.init(carColor: carColor, carCapacity: carCapacity)
}
}

car.CarPopulation //outputs 0 in xcode playground


I am assuming I need a function to actually return the value, but I want the counter to increase every time an instance of the class is created.

I get the following error:

error: static member 'carPopulation' cannot be used on instance of type 'car'

Answer

Inside initializer method you have to add one to your static var with

Car.carPopulation += 1

And you must implement de deinitializer to delete the car entity that is going to disappear

deinit
{
    Car.carPopulation -= 1
}