2016-09-01 10 views
1

Я использую объект NSData для хранения различных типов данных. Объект также содержит строку формата MIME. Но для использования метода [UIDocumentInteractionController interactionControllerWithURL:], мне нужно сохранить объект NSData в файловой системе.Как определить подходящее расширение файла из MIME Тип в Objective-C

Проблема заключается в том, как указать расширение файла на основе формата MIME?

+3

Может быть [это интересно для вас] (http://blog.ablepear.com/2010/08/how-to-get-file-extension-for-mime-type.html), его бит старше, но обрабатывает Mime-type для UTI для преобразования расширений файлов. Я не уверен, что все еще работает. – makadev

+0

Он по-прежнему работает! Большое спасибо! –

ответ

2

Кредит отправляется @makadev за this link, который он опубликовал в качестве комментария, но я думал, что добавлю его в качестве фактического ответа. Вот код, полученный из этой статьи, который работал на iOS 11. Обратите внимание, что вам нужно будет связать/импортировать инфраструктуру MobileCoreServices. Значение, которое вы заполните для токена mimetype, должно быть NSString*.

NSString* uti = (__bridge_transfer NSString*)UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, (__bridge CFStringRef)<#mimetype#>, NULL); 
NSString* extension = (__bridge_transfer NSString*)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)uti, kUTTagClassFilenameExtension);