Skip to content

Instantly share code, notes, and snippets.

@ddeville
Created December 28, 2011 10:40

Revisions

  1. Damien DeVille created this gist Dec 28, 2011.
    24 changes: 24 additions & 0 deletions gistfile1.m
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    #if TARGET_OS_IPHONE
    #import <MobileCoreServices/MobileCoreServices.h>
    #else
    #import <CoreServices/CoreServices.h>
    #endif

    /*
    MIME type to UTI
    */
    NSURLResponse *response = ... // assume a URL response from somewhere else.
    NSString *responseMIMEType = [response MIMEType];
    CFStringRef MIMEType = (__bridge CFStringRef)[response MIMEType];
    CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, MIMEType, NULL);
    NSString *UTIString = (__bridge_transfer NSString *)UTI;

    /*
    UTI to MIME type
    */
    NSString *filePath = ... // assume the path to a file from somewhere else.
    CFStringRef fileExtension = (__bridge CFStringRef)[filePath pathExtension];
    CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
    CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
    CFRelease(UTI);
    NSString *MIMETypeString = (__bridge_transfer NSString *)MIMEType;