2016-05-28 2 views

ответ

2

Возможны другие способы, но одним из способов является использование служб идентификатора типа (UTI), предоставляемых MobileCoreServices.

import MobileCoreServices 

Просто получить описание, связанное с ИМП внутренней линии:

if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, nil)?.takeRetainedValue(), let description = UTTypeCopyDescription(uti)?.takeRetainedValue() { 
    print(description) 
} 

ВИДЕТЬ How the System Identifies the Type of Content in a File в Руководстве системного программирования файла.

+0

Nope. Это показывает мне 'org.khronos.collada.digital.asset.exchange' для' dae' файлов и 'dyn.age8402k' для файлов, которые он не может идентифицировать. Я думаю, что он почти там, но еще нет. – SpaceDog

+0

Во-первых, «org.khronos ...» - это UTI. Если вы затем получите описание этого UTI с помощью 'UTTypeCopyDescription', как показано выше, я получаю описание« Digital Asset Exchange (DAE) ». Во-вторых, для расширения 'age8402k', что вы ожидали от него? Это не похоже на расширение, для которого UTI было бы зарегистрировано на устройстве. Кроме того, помните, что у вас может быть зарегистрирована UTI на вашей Mac OS, которая не может быть зарегистрирована на iOS, поэтому не путайте их. – Rob

+0

Вы правы. У меня была ошибка в моей системе, вызвавшая неправильный метод. Теперь он показывает правильное описание. СПАСИБО, ты потрясающий! – SpaceDog

Смежные вопросы