Uniform Type Identifiers Overview

Introduction to Uniform Type Identifiers Overview

One of the challenges facing application developers is the proliferation of methods to identify types of data. For example, some text files may be assigned a 'TEXT' file type (as originally designed for Mac OS 9 and earlier), while others may simply have a .txt filename extension. Some may have the .text extension instead. In addition, some file types might be subsets of other types; an application that opens all .txt files should probably also be able to open those with a .html extension. Determining all the possible files an application could read could become impossible. The user experience then suffers, with users not understanding why an application can open one text file but not another.

To solve this problem, Apple has defined a syntax for special data identifiers called uniform type identifiers. Each UTI provides a unique identifier for a particular file type, data type, directory or bundle type, and so on. In addition, other type identifier namespaces for a particular type can be grouped under one UTI, with utility functions available to translate from one format to another.

Who Should Read This Document?

This document is for OS X and iOS application developers that need to create or otherwise manipulate data that may be exchanged with other applications or services. For example, applications often need to be aware of the type of data they handle when:

Displaying, or manipulating, files, bundles, or folders

Accessing streaming data

Copying and pasting between documents or applications

Dragging and dropping between applications

Support for uniform type identifiers is available in OS X v10.3 and later and iOS 3.0 and later.