如何创建一个扩展来处理多个核心数据实体

How to create an extension to deal with multiple core data entities

我有两个名为 CarOwner 的核心数据实体,显然 NSManagedObject 并且作为所有核心数据实体,默认情况下都是 @Observable

我创建了一个 class,我在其中观察其中一个实体,例如:

class RadioControlModel {

  @ObservedObject var carEntity:Car

  // ... bla bla

  init(_ carEntity:Car, _ name:String) {
    self.carEntity = readCarEntityWith(name)
  }
}

此 class 是允许用户切换 Car 实体的布尔值状态的无线电控件模型。

现在我需要对 Owner 实体执行相同的操作,即使用此 class 更改此 class 的布尔值,但 init 绑定到 Car。我如何将其声明为通用的,以便 RadioControlModel 可以接受任何核心数据实体,而不仅仅是类型 Car.

我这里的问题是这样做并继续有变量@Observable,即响应变化。

试试这个:

class RadioControlModel<T: NSManagedObject> {

  @ObservedObject var carEntity:T

  // ... bla bla

  init(_ carEntity:T, _ name:String) {
    self.carEntity = readCarEntityWith(name)
  }
}