self type(of: self)
self.
String(describing: <type>)
( ),
, :
extension NSManagedObject {
convenience init(managedObjectContext moc: NSManagedObjectContext) {
let name = String(describing: type(of: self))
guard let entityDescription = NSEntityDescription.entity(forEntityName: name, in: moc) else {
fatalError("Unable to create entity description with \(name)")
}
self.init(entity: entityDescription, insertInto: moc)
}
}
if #available init(context:) iOS 10/macOS 10.12 ,
:
extension NSManagedObject {
convenience init(managedObjectContext moc: NSManagedObjectContext) {
if #available(iOS 10.0, macOS 10.12, *) {
self.init(context: moc)
} else {
let name = String(describing: type(of: self))
guard let entityDescription = NSEntityDescription.entity(forEntityName: name, in: moc) else {
fatalError("Unable to create entity description with \(name)")
}
self.init(entity: entityDescription, insertInto: moc)
}
}
}