0
获取类名作为一个String有没有什么办法让类名作为初始化字符串进行调用super.init有没有办法在指定初始化
之前,我想为NSManagedObject的子类创建init方法等等我不需要每次都创建实体。这个CoreDataManagedObject是一个抽象类,我所有的ManagedObject都需要从它继承。现在我怎么能在init()中以String的形式获取className?
class CoreDataManagedObject: NSManagedObject {
init() {
let entityName = <get class name here as a String>
let entity = NSEntityDescription.entityForName(entityName, inManagedObjectContext: coreDataStack.context)!
super.init(entity: entity, insertIntoManagedObjectContext: coreDataStack.context)
}
}
class Company: CoreDataManagedObject {
}
我不能super.init之前使用自所以我不知道是否有在初始化另一种方式()来获取是要去创建该对象的信息。如果我创建公司对象,我只想要entityName =“公司”。
肯定是有一些解决方案,使您无法super.init之前使用的类名,但如果你想这样做的解决方案之一可以是在任何类中拥有一个具有className的属性,并且可以从init中访问它: class CoreDataManagedObject:NSManagedObject var name =“CoreDataManagedObject” init(){ let entityName = name } } 类公司:CoreDataManagedObject {VAR = nameN “本公司” 覆盖变数名称:字符串{ 获得{ 回报nameN } 集合{ nameN = NEWVALUE }} } –