如何在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 ?!
}
包括<MobileCoreServices/MobileCoreServices.h>
或<CoreServices/CoreServices.h>
然后只是代码:
CFStringRef mimeType = (CFStringRef)@"audio/x-aiff";
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL);
CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension);
斯威夫特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返回。