An object representing a universally unique value that bridges to UUID; use NSUUID when you need reference semantics or other Foundation-specific behavior.


UUIDs (Universally Unique Identifiers), also known as GUIDs (Globally Unique Identifiers) or IIDs (Interface Identifiers), are 128-bit values. UUIDs created by NSUUID conform to RFC 4122 version 4 and are created with random bytes.

The standard format for UUIDs represented in ASCII is a string punctuated by hyphens, for example 68753A44-4D6F-1226-9C60-0050E4C00067. The hex representation looks, as you might expect, like a list of numerical values preceded by 0x. For example, 0xD7, 0x36, 0x95, 0x0A, 0x4D, 0x6E, 0x12, 0x26, 0x80, 0x3A, 0x00, 0x50, 0xE4, 0xC0, 0x00, 0x67. Because a UUID is expressed simply as an array of bytes, there are no endianness considerations for different platforms.

The NSUUID class is not toll-free bridged with CoreFoundation’s CFUUID. Use UUID strings to convert between CFUUIDRef and NSUUID, if needed. Two NSUUID objects are not guaranteed to be comparable by pointer value (as CFUUID is); use isEqual(_:) to compare two NSUUID instances.


Creating UUIDs


Initializes a new UUID with RFC 4122 version 4 random bytes.

init?(uuidString: String)

Initializes a new UUID with the formatted string.

init(uuidBytes: UnsafePointer<UInt8>?)

Initializes a new UUID with the given bytes.

Get UUID Values

var uuidString: String

The UUID as a string.


Inherits From

See Also

Using Reference Types

typealias UUID.ReferenceType

An alias for this value type's equivalent reference type.