将mimetype转换为文件扩展名

问题描述 投票:3回答:2

如何在xcode中将mimetype转换为文件扩展名,例如我有这个代码

File Extension     MIME Type

aifc                audio/x-aiff
avi                 video/x-msvideo
gz                  application/x-gzip
jpg                 image/jpeg

Xcode中

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
        NSString *mime      = [response MIMEType];
        NSString *extension = @"" // how to covert it ?!
}
xcode nsurlconnection mime-types file-extension
2个回答
5
投票

包括<MobileCoreServices/MobileCoreServices.h><CoreServices/CoreServices.h>然后只是代码:

CFStringRef mimeType = (CFStringRef)@"audio/x-aiff";
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL);
CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension);

2
投票

斯威夫特4:

导入CoreServices

response.mimeType // is Optional<String> - some : "audio/mpeg"

如何获得mp3是:

guard let mime = response.mimeType,
      let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mime as CFString, nil),
      let ext = UTTypeCopyPreferredTagWithClass(uti.takeRetainedValue(), kUTTagClassFilenameExtension) else{
   return
}

ext.takeRetainedValue() // is "mp3"

PD:考虑到Xcode不会获得未知文件的扩展,如.Storyboard或.cert,在这种情况下将退出Guard返回。

© www.soinside.com 2019 - 2024. All rights reserved.