MagicKit.framework is an easy-to-use wrapper around the
libmagic file identification library. It provides a high-level Objective-C interface and deals in Foundation types (NSString, NSData, et al).
MagicKit.framework is available for both OS X (as a framework) or iOS as a static library with header files.
MagicKit.framework consists of a master class,
GEMagicKit, and an intermediary class,
GEMagicKit master class has six class methods, listed below in descending order of convenience.
+ (GEMagicResult *)magicForFileAtPath:(NSString *)path; + (GEMagicResult *)magicForFileAtURL:(NSURL *)aURL; + (GEMagicResult *)magicForData:(NSData *)data; + (GEMagicResult *)magicForFileAtPath:(NSString *)path decompress:(BOOL)decompress; + (GEMagicResult *)magicForFileAtURL:(NSURL *)aURL decompress:(BOOL)decompress; + (GEMagicResult *)magicForData:(NSData *)data decompress:(BOOL)decompress;
These methods all return the
GEMagicResult intermediary class. The
GEMagicResult class has four properties. These are
uniformTypeHierarchy. the first three properties are
NSString objects, the final returns an
Example MIME types include:
Or a textual description, respectively:
XML document text
RIFF (little-endian) data, AVI, 624 x 352, 23.98 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz))
uniformTypeHierarchy return Uniform Type Identifiers for the relevant file/data. The type hierarchy is an array of types that the given file conforms to.
GEMagicKit can also decompress compressed files and hence attempt to determine the contents within.