2012-09-28 9 views
6

Ich habe alle Tickets zu diesem Thema gelesen, aber ich verstehe es immer noch nicht richtig. Ich habe eine OSX-App (nicht für Dokumente) (für OSX Lion und MountainLion). Ich möchte, dass diese App benutzerdefinierte Daten exportiert und importiert, die mit einer benutzerdefinierten Dateierweiterung ".iobs" verknüpft sind. Intern werden diese Dateien nur mit [NSKeyedArchiver archivedDataWithRootObject:] archiviert und auf der Festplatte mit der Erweiterung "iobs" gespeichert.Wie registriere ich einen benutzerdefinierten Nicht-Dokument UTI/Dateityp, damit OSX es erkennt?

Also, meine Checkliste, ist dies:

1) Export-Mechanismus: geprüft. Meine App erstellt korrekt .iobs-Dateien. Wenn ich "file <filename.iobs>" im Terminal starte, bekomme ich "iObserve_exportedItems.iobs: Apple binäre Eigenschaftenliste"

2) Deklaration einer exportierten UTI, geprüft. Wie im Bild unten gezeigt. Ich habe keinen benutzerdefinierten Dokumententyp deklariert, da ich NSDocument nie in meiner App verwende und es keinen Sinn macht. Jedenfalls habe ich es schon versucht und gescheitert. Ich habe auch verschiedene Kombinationen von "Conforms To" -Einträgen versucht, aber ohne Erfolg.

Snapshot of Xcode4 exported custom UTI declaration

3) Gibt es einen dritten Punkt ??? Muss ich meine App einmal starten, um das System zu informieren? Ich habe es bisher nur in Debug von Xcode ausgeführt, und das hat keinen Effekt. Also ich denke, dass meine Info.plist falsch ist, aber ich habe es aus der Xcode4-Schnittstelle heraus gefüllt, also ???

Danke für jede Hilfe, Hinweis, Frage, Vorschlag.

Antwort

14

Ok, so offensichtlich muss ich einen Dokumenttyp auch dann deklarieren, wenn ich keine Dokumentklasse angeben. Siehe den beigefügten Screenshot. Beachten Sie, dass nur das Dokument UTI nicht funktioniert. Ich brauche die beiden (exportiert UTI und Dokumenttyp). Wenn ich sage, dass es der com.apple.binary-Eigenschaft-Liste entspricht, habe ich auch nicht das richtige Icon.

Und für diejenigen, die sich wundern, gibt es nichts zu tun, um einen Typ (und seine nachfolgenden Änderungen) zu registrieren, abgesehen von dem Starten der App einmal.

enter image description here

+2

+1 Dank für diesen Hinweis mit Screenshots aus. Das ist ein sehr vollständiger Fragen und Antworten zur Registrierung eines Dateityps für Ihre App. – codingFriend1

+2

+1 Danke! Ich kann nicht glauben, wie schwer es war, diese Informationen zu finden. –