Frage

Ich schreibe eine Anwendung, die Marken verwenden UTTypeCreateAllIdentifiersForTag() und es verschiedene MIME Typen übergeben.

war meine Hoffnung, dass diese Funktion (im Unterschied zu UTTypeCreatePreferredIdentifierForTag()) würde ich die speziellsten UTI sowie alle HWI zu dem sie entspricht. Dies scheint nicht der Fall zu sein - es gibt entweder eine einzelne UTI, oder die sekundären Harnwegsinfekte sind unecht.

Es gibt die UTTypeConformsTo() Funktion in der gleichen Header-Datei definiert, aber ich würde eine Funktion, die gibt einen Array von allen Typen, auf die diese UTI Konform bevorzugen.

Es scheint mir Hoffnung zu sein, wie MDItemCopyAttributeList() wird eine solche Liste zurückzukehren. Das heißt, es erfordert eine MDItemRef, die entweder von einem Dateipfad oder URL erstellt werden können - was nicht so toll ist. Manchmal wird meine Daten nur im Arbeitsspeicher gespeichert und ich nur einen MIME-Typen durch zu gehen.

Muss ich durchlaufen die gesamte Datenbank von HWI haben diese Informationen zu erhalten oder bin ich etwas fehlt?

War es hilfreich?

Lösung

Ich war in der Tat etwas fehlt: die sehr offensichtliche Lösung. Während ich durch die Symbole von LaunchServices (und bemerkte, den interessanten, aber privaten UTTypeCopyPedigree()) exportieren Schleppen wurde, war ich von UTTypeCopyDeclaration() erinnert, die ist definiert.

UTTypeCopyDeclaration() ist eine Harnwegsinfektion und kehrt (als CFDictionaryRef) angesichts der Eigenschaftsliste, in der die UTI definiert wurde. Das Ziel in diesem Wörterbuch mit den wichtigsten kUTTypeConformsToKey ist entweder ein CFArrayRef oder CFStringRef. Im Fall eines Arrays kann man rekursiv iterieren, bis ein Basistyp erreicht wird.

Dies ist, wie ich einen Vererbungsbaum für einen bestimmten UTI aufgebaut. Ich hoffe, das jemand anderes mit dem gleichen Problem hilft.

Andere Tipps

https://github.com/nst/UTIsExplorer erzeugt eine Hierarchie von Graphen UTIs in „dot "Format für graphviz.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top