2017-04-20 5 views
1

Si j'appellePourquoi UTTypeCreatePreferredIdentifierForTag retourne étrange UTI?

import UIKit 
import MobileCoreServices 
import Foundation 

var fileExtension:CFString = "7z" as CFString 
var unmanagedFileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, nil)?.takeRetainedValue(); 
print(unmanagedFileUTI) 

Je reçois

dyn.age8xs8u

comme résultat. Je n'ai trouvé aucune information sur age8xs8u. Est-ce l'UTI correcte pour 7z?

+1

De la documentation à https://developer.apple.com/reference/coreservices/1448939-uttypecreatepreferredidentifierf: * "Si aucun résultat n'est trouvé, cette fonction crée un type dynamique commençant par le préfixe dyn." * –

+0

la phrase suivante signifie? "* Cela vous permet de faire circuler l'UTI et de le reconvertir en l'étiquette d'origine *" Devrais-je compter sur 'UTTypeCreatePreferredIdentifierForTag'? L'UTI est-elle liée aux applications installées? – testing

+1

Cela signifie que l'infrastructure MobileCoreServices ne connaît pas l'extension de fichier "7z" et qu'aucune application ne l'a enregistrée, donc oui, cela dépend des applications installées. –

Répondre

1

Cela signifie que l'extension de fichier "7z" n'est pas connue par l'infrastructure MobileCoreServices et n'est enregistrée par aucune application installée. Dans ce cas UTTypeCreatePreferredIdentifierForTag() crée et retourne une infection urinaire temporaire:

Si aucun résultat trouvé, cette fonction crée un type dynamique en commençant par le préfixe DYN. Cela vous permet de faire circuler l'UTI et de le reconvertir en l'étiquette d'origine.

La fonction retourne nil que si l'argument inTagClass est invalide. Avec un argument de classe d'étiquette valide, vous obtiendrez toujours un UTI retour, pour les identificateurs de fichiers arbitraires.

Vous pouvez vérifier si la valeur de retour a le préfixe "dyn". afin de vérifier si l'UTI retourné est un créé dynamiquement ou un UTI enregistré.

Selon l'https://en.wikipedia.org/wiki/7z, l'UTI pour le format de fichier 7z est "org.7-zip.7-archive-zip".