Obter nome da turma em conveniência init Swift 3

Estou tentando implementar minha própria versão doconvenience init(context moc: NSManagedObjectContext), o novo inicializador de conveniência no NSManagedObject no iOS 10. Por isso, preciso torná-lo compatível com o iOS 9.

Eu vim com isso:

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)
}

mas não funciona por causa desse erro ...

'self' usado antes da chamada self.init

Alguém sabe como contornar esse erro ou obter o mesmo resultado de outra maneira.

questionAnswers(1)

yourAnswerToTheQuestion