我有两个核心数据实体,分别命名为Car
和Owner
,显然都是NSManagedObject
,作为所有核心数据实体都默认为@Observable
。
我创建了一个类,在其中我观察了其中一个实体,类似于:
class RadioControlModel {
@ObservedObject var carEntity:Car
// ... bla bla
init(_ carEntity:Car, _ name:String) {
self.carEntity = readCarEntityWith(name)
}
}
此类是允许用户切换Car
实体的布尔值状态的无线电控件的模型。
现在我需要对Owner
实体做同样的操作,即使用这个类来更改这个类的布尔值,但init
与Car
绑定。如何将其声明为泛型,以便RadioControlModel
可以接受任何核心数据实体,而不仅仅是Car
类型的实体。
我在这里的问题是这样做,并继续使用变量@Observable
,也就是说,响应更改。
试试这个:
class RadioControlModel<T: NSManagedObject> {
@ObservedObject var carEntity:T
// ... bla bla
init(_ carEntity:T, _ name:String) {
self.carEntity = readCarEntityWith(name)
}
}