2010-03-21 7 views
3

Donnée: Une application qui accède à un répertoire de fichiers: du texte brut, des fichiers binaires qui adhèrent à une implémentation NSCoding particulière, et peut-être d'autres fichiers binaires qu'il ne comprend tout simplement pas comment traiter.Quel est le moyen le plus rapide pour déterminer si un fichier adhère à l'implémentation NSCoding d'une classe particulière?

Je veux: être en mesure de déterminer lequel des fichiers dans ce répertoire adhèrent à ma classe NSCoding, et je préférerais ne pas avoir à se replier sur l'approche naïve de charger l'intégralité de chaque fichier en mémoire, en essayant de désarchiver chaque.

Quelqu'un at-il une approche ou un modèle élégant à ce problème?

Répondre

1

Le but du système Universal Type Identifier (UTI) est d'empêcher ce problème autrement impossible à résoudre d'une manière élégante. Si les trois types de fichiers n'ont pas d'UTI distinctives (et d'extensions de nom de fichier), vous n'avez probablement pas de chance. Si c'est un problème que vous voyez arriver et que vous avez toujours le contrôle de la génération des fichiers, donnez-leur des UTI uniques et déclarez ces UTIs dans Info.plist de votre application.