Ios 子类NSManagedObject子类

Ios 子类NSManagedObject子类,ios,swift,core-data,nsmanagedobject,Ios,Swift,Core Data,Nsmanagedobject,假设我有一个NSManagedObject子类Instrument,我想对该子类进行子类化,以创建类似Guitar的东西。这有一个普遍的做法吗?它似乎不像子类化NSObject那样简单。这样做没有什么错: class Instrument: NSManagedObject { @NSManaged var name: String } class Guitar: Instrument { @NSManaged var numberOfString: NSNumber } 对于托管对象

假设我有一个NSManagedObject子类
Instrument
,我想对该子类进行子类化,以创建类似
Guitar
的东西。这有一个普遍的做法吗?它似乎不像子类化NSObject那样简单。

这样做没有什么错:

class Instrument: NSManagedObject {
  @NSManaged var name: String
}

class Guitar: Instrument {
  @NSManaged var numberOfString: NSNumber
}

对于托管对象子类,子类/父类关系 对应于的子实体/父实体关系 核心数据实体

如果您在中将“吉他”的“父实体”设置为“乐器” 核心数据模型检查器,然后创建托管对象子类 在Xcode中,您将获得

// Instrument.swift:
class Instrument: NSManagedObject {

// Insert code here to add functionality to your managed object subclass

}

// Guitar.swift:
class Guitar: Instrument {

// Insert code here to add functionality to your managed object subclass

}
有关更多信息,请参见“实体继承”一节 在:

实体继承的工作方式与类继承类似,并且出于同样的原因非常有用。如果有许多相似的实体,则可以将公共特性分解为超级实体(也称为父实体)

还要注意

使用SQLite持久存储时,请注意实体继承。从另一个实体继承的所有实体都将存在于SQLite中的同一个表中。SQLite持久存储设计中的这个因素可能会造成性能问题


你觉得它在什么方面不简单?