Apple Dokumentation schlägt vor, eine NSDocument Bequemlichkeit init (initWithType: Fehler :) überschreiben wie beschrieben here.Wie initialisiere ich eine neue NSDocument-Instanz in Swift?
Da dies jedoch ein Komfort-Init ist, kann ich es nicht überschreiben. Aber ich muss noch etwas Code ausführen, wenn ein neues Dokument erstellt wird. Ich möchte diesen Code nicht ausführen, wenn ich ein Dokument einlege.
In meinem speziellen Fall versuche ich ein NSPersistentDocument zu initialisieren, aber ich bezweifle, dass das relevant ist.
Was soll ich tun?
// Create new document (only called for new documents)
convenience init?(type typeName: String, error outError: NSErrorPointer) {
self.init()
fileType = typeName
// add your own initialisation for new document here
}
Das Problem in Swift ist, dass Sie nicht rufen Sie einen Komfort initializer in Super:
Sie machen eine Unterklasse von NSPersistentDocument ... dann stellen Sie das in Ihrer info.plist oder wo auch immer das hin ... so dass Ihre Anwendung diese Klasse mit dem Typ –
verbindet, ok, Frage erlaubt unterschiedliche Interpretationen. Es tut uns leid. Ich muss den Code nach der Erstellung ausführen. Das ermöglicht die Komfort-Init. Aber ich bin mir nicht sicher, wo ich das jetzt tun soll, wenn ich diese bestimmte Init nicht mehr außer Kraft setzen kann. –
Was meinen Sie damit, dass Sie die Init nicht überschreiben können? –