Общий вопрос: когда я не владею определенным файловым форматом, но UTI не был определен для него кем-то другим, как использовать этот формат файла?
Конкретная ситуация: я создаю плагин QuickLook для файлов .torrent и .nzb. (Примечание: файлы .nzb похожи на файлы .torrent, за исключением того, что вместо указания на трекер bittorrent они указывают на сервер Usenet.) Я хочу, чтобы плагин показывал, какие данные указывает файл .nzb/.torrent, какие файлы будут загружены, если они будут открыты, и любые другие применимые метаданные. Для этого я должен указать Uniform Type Identifiers для этих двух типов файлов. В то время как файлы .torrent имеют назначенный UTI для файлов com.bittorrent.torrent,.nzb - формат NZB определяемый newzbin.com, который не публикует собственное приложение (и поэтому не определяет унифицированный идентификатор типа Mac OS X для меня).
Возможные варианты:
- Экспортируйте и используйте UTI в виде com.example.nzb, где example.com принадлежит мне. Это кажется неправильным, потому что у меня нет формата nzb.
- Экспортируйте и используйте UTI в виде com.newzbin.nzb, где newzbin.com не принадлежит мне. Это кажется неправильным, потому что у меня нет newzbin.com.
- Сделайте, например. Unison (приложение Mac OS X) выполняет и полностью игнорирует UTI и использует
CFBundleTypeExtensions
в моем файлеInfo.plist
. Это тоже кажется неправильным, потому что не толькоCFBundleTypeExtensions
устарел на документацию Apple, но я не думаю, что могу использоватьCFBundleTypeExtensions
иLSBundleContentTypes
(если присутствуетLSBundleContentTypes
, так как это должно быть для меня использовать com.bittorrent.torrent UTI, тоCFBundleTypeExtensions
игнорируется).
Какая правильная вещь в этой ситуации?