Hi Leute,
ich hab da mal wieder ein paar Fragen. Ich bin (immer noch) dabei, eine Cocoa Anwendung für OS X zu entwickeln. Bin zwar nicht neu in der Programmierung, aber eben neu im Entwickeln unter OS X. Hab nun schon die ein oder andre Erfahrung gemacht und mittlerweile auch ein Buch gekauft - so ganz ohne geht's zwar schon, aber schwerer als notwendig. Das aktuelle Projekt ist auch explizit als Lernprojekt gedacht, dass nachher aber trotzdem produktiv eingesetzt werden soll. So kam es auch, dass ich den ersten Entwurf komplett über Bord geschmissen und mit dem bis dato gelernten neu angefangen hab. Soviel zur Vorgeschichte.
Die App soll ähnlich iTunes / iPhoto eine Datenverwaltung darstellen, die nur eine einzige "Datenbank" hat. Die Datenbank ist ein File-Bundle (wie z. B. bei iPhoto). In diesem File-Bundle liegt mein SQL-Store für CoreData und andere, zusätzliche Dokumente / Dateien. Nun zu meinen Fragen:
Marc
ich hab da mal wieder ein paar Fragen. Ich bin (immer noch) dabei, eine Cocoa Anwendung für OS X zu entwickeln. Bin zwar nicht neu in der Programmierung, aber eben neu im Entwickeln unter OS X. Hab nun schon die ein oder andre Erfahrung gemacht und mittlerweile auch ein Buch gekauft - so ganz ohne geht's zwar schon, aber schwerer als notwendig. Das aktuelle Projekt ist auch explizit als Lernprojekt gedacht, dass nachher aber trotzdem produktiv eingesetzt werden soll. So kam es auch, dass ich den ersten Entwurf komplett über Bord geschmissen und mit dem bis dato gelernten neu angefangen hab. Soviel zur Vorgeschichte.
Die App soll ähnlich iTunes / iPhoto eine Datenverwaltung darstellen, die nur eine einzige "Datenbank" hat. Die Datenbank ist ein File-Bundle (wie z. B. bei iPhoto). In diesem File-Bundle liegt mein SQL-Store für CoreData und andere, zusätzliche Dokumente / Dateien. Nun zu meinen Fragen:
- Ist es prinzipiell richtig, das ganze mit NSDocument zu realisieren, oder ist das ein "Overkill" bzw. der falsche Ansatz? Anders kann ich aber wohl keine Dateiendung als Datei für meine App registrieren. Zumindest wüsste ich nicht wie.
- Wie kann ich dafür sorgen, dass beim Start der App immer meine Datenbank per NSDocument geöffnet wird? I. d. R. passt das, hatte es beim Debuggen aber auch das ein oder andere mal, dass mein Fenster mit den Daten erst erschienen ist, wenn ich auf das App-Icon geklickt hab. (Bin mir jetzt im Moment gar nicht sicher, ob das Fenster vielleicht einfach im Hintergrund geöffnet wurde und Xcode davor lag).
- Wenn ich schon CoreData verwende, wäre NSPersistentDocument vielleicht die bessere Wahl (mach das ganze Core-Date Verwaltungszeugs momentan "per Hand", was zum lernen freilich praktischer ist). Wie aber kann ich dem NSPersistentDocument mitteilen, dass es für den Store bitte die Datei X im Verzeichnis Y und dem Format Z (in meinem Fall SQL) verwenden soll? Oder muss ich hier configurePersistentStoreCoordinatorForURL
überschreiben und den PersistentStoreCoordinator selbst erstellen? - Autosave wäre ja ganz nett, um Änderungen in CoreData zeitnah ab zu speichern. Geht das auch ohne dass der User den Dateinahmen im Fenstertitel ändern kann? Das würde hier nämlich überhaupt kein Sinn machen.
Marc