如何将数据存储在一切都是静态的 class 中?

How can data be stored inside a class where everything is static?

我有一个 class 是由这样的人开发的

class CarsDatabase {
  
    private static var cars: [Car] = []
    
    static func saveCar(vehicle: Car) {
        cars.append(vehicle)
    }

然后我被要求从 CSV 文件中读取汽车并使用 CarsDatabase 中的方法 saveCar 将其保存到“数据库”。

从 CSV 读取发生在另一个名为 FetchCarData 的 class 上。

class FetchCarData {

private let fileName = "cars.csv"

func readData() {
  // I was asked to implement this and save to the database
  // Using saveCar from CarsDatabase

  // so I read all rows on the text file and I have a loop to fill
  // the database

  for row in rows {
    let newCar = Car(name:row[0], brand:row[1], price:row[2])
    // here is my problem
    // save car is static and must be called like

    CarsDatabase.saveCar(vehicle:newCar)

    // how can I store that on something that is not an instance?
  }

CarsDatabase.saveCar(vehicle:newCar) 不是实例,将在下一次循环交互时消失。我怎样才能将它存储在不是实例的东西上?

告诉我不要从几个函数中删除任何 static 关键字。

我说不可能

另一种方法是使用 singleton 模式。

class CarsDatabase {
    static let shared = CarsDatabase()

    private var cars: [Car] = []

    private init() {}

    func saveCar(vehicle: Car) {
        cars.append(vehicle)
    }
}

使用CarsDatabase.shared访问实例。

这样省车:

let car = Car()
CarsDatabase.shared.saveCar(vehicle: car)