Получить имя класса в удобстве init Swift 3

Я пытаюсь реализовать свою собственную версиюconvenience init(context moc: NSManagedObjectContext), новый удобный инициализатор на NSManagedObject в iOS 10. Причина в том, что мне нужно сделать его совместимым с iOS 9.

Я придумал это:

convenience init(managedObjectContext moc: NSManagedObjectContext) {
    let name = "\(self)".components(separatedBy: ".").first ?? ""

    guard let entityDescription = NSEntityDescription.entity(forEntityName: name, in: moc) else {
        fatalError("Unable to create entity description with \(name)")
    }

    self.init(entity: entityDescription, insertInto: moc)
}

но это не работает из-за этой ошибки ...

«self» используется перед вызовом self.init

Кто-нибудь знает, как обойти эту ошибку или добиться того же результата другим способом.

Ответы на вопрос(1)

Ваш ответ на вопрос