Как найти файл UTI для файла, с узлом pathExtension, в пути в Swift

Я пытался преобразовать этот код, который у меня был из этого примера (в Objective-c), без везения.

String *path; // contains the file path // Get the UTI from the file's extension: CFStringRef pathExtension = (__bridge_retained CFStringRef)[path pathExtension]; CFStringRef type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL); CFRelease(pathExtension); // The UTI can be converted to a mime type: NSString *mimeType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType); if (type != NULL) CFRelease(type); 

Мой код – это

  import MobileCoreServices let path: String? let pathExt = path.pathExtension as CFStringRef let type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL); let mimeType = UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType) if type != Null CFRelease(type) 

Все, что я хочу сделать, это выяснить, является ли файл изображением или видеофайлом

One Solution collect form web for “Как найти файл UTI для файла, с узлом pathExtension, в пути в Swift”

Вы можете использовать метод URL getResourceValue чтобы получить файл URL TypeIdentifierKey который возвращает идентификатор однородного типа файла (UTI). Вам просто нужно проверить, является ли возвращаемое значение «com.apple.m4v-video» для видео, «public.jpeg» или «public.png» для изображений и т. Д. Вы можете добавить расширение свойства typeIdentifier в URL, чтобы вернуть строковое значение TypeIdentifierKey следующим образом:

Xcode 9 • Swift 4 или Xcode 8.3.2 • Swift 3.1

 extension URL { var typeIdentifier: String? { return (try? resourceValues(forKeys: [.typeIdentifierKey]))?.typeIdentifier } var localizedName: String? { return (try? resourceValues(forKeys: [.localizedNameKey]))?.localizedName } } 
  • Как проверить, имеет ли Json значение null в swift?
  • файл был изменен с момента сборки прекомпилированного заголовка
  • Atos не символизирует системные рамки / библиотеки должным образом
  • Имя первого класса не существует в поле автозаполнения в Xcode 7.3
  • iOS - потоковая передача больших файлов для загрузки (сбой приложений при распределении слишком больших файлов с использованием NSData)
  • NSArray полный NSDictionaries. Как найти индекс объекта?
  • Установка IPA приводит к ошибке «Добавлен, изменен или удален подписанный ресурс»
  • Чрезвычайно длительное время компиляции с Swift в Xcode
  • lldb error: переменная недоступна
  • IOS Xcode Проверка Xcode.app
  • Использование атрибута 'attributed' в интерфейсе Builder
  • Interesting Posts

    делать ли тестерам iphone-приложения бета-тестировщикам лицензию разработчика?

    Ionic не может загрузить идентификатор приложения или ключ API

    остановка перечисления блоков для NSDictionary

    UICollectionView – репликация функций Photos.app

    Является ли Apple проверкой покупки физических товаров во время процесса утверждения приложений?

    Элемент кнопки «Бар» не отображается

    Как справляться с различными разрешениями при разработке изображений для iPhone3G и iPhone4

    Objective-C – 'sendSynchronousRequest: returnResponse: error:' устарел: сначала устарел в iOS 9.0

    Извлечь агрегированные данные из NSManagedObject, используя другое выражение в качестве аргумента для выражения sum: expression

    Что нужно назвать идиоматическим кодом Swift, эквивалентным pythonic?

    Местонахождение libAdIdAccess.a?

    UTF Время для измененного файла IOS

    Как перетащить контроль, как голос Тиндера? (см. изображения)

    Входная сессия Paypal в iOS с MPL

    Создание модели представления для каждого UITableViewCell

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.