QSW_UUID is an Objective-C Cocoa framework for using Apple’s Core Foundation UUID API in your Cocoa applications. It is written for Mac OS X 10.2 Jaguar and newer.
The complete distribution package includes these items:
- This About QSW_UUID document.
- The QSW_UUID Framework 1.2 Source, containing an Xcode project together with all source files.
- QSW_UUID.framework. This is the installable framework, built for deployment. It contains the documentation referred to below.
- QSW UUID Utility, a useful utility for generating and examining UUIDs, built with QSW_UUID.framework.
- The QSW UUID Utility 1.2 Source, containing an Xcode project together with all source files to illustrate the use of QSW_UUID.framework.
- A UUID Specification folder containing the official UUID specification document and its URL.
QSW UUID Utility requires Mac OS X 10.2 Jaguar or newer. As built, it is a PowerPC application and therefore will not run on Mac OS X 10.7 Lion or newer.
About UUIDs and the UUID API
The QSW_UUID Framework is an Objective-C wrapper for the Core Foundation CFUUID.h header file, with additional features. Apple introduced a simple NSUUID class in OX X 10.8 Mountain Lion in July 2012, but the QSW_UUID Framework provides many more features.
The framework provides methods that call CFUUID functions to generate universally unique identifiers, both as raw binary and string objects, and to convert any UUID between its binary and string representations. In addition, it provides methods to test individual UUIDs for valid representation formats, and to test pairs of UUIDs for equality and ordering, all in accordance with the UUID specification. Nil UUIDs are supported. Finally, it provides methods to obtain the version and variant of the specification under which a UUID was created.
A universally unique identifier (UUID) is an identifier that is unique across the space of all UUIDs generated using the same algorithm and unique across time. It can be used to reliably identify and distinguish persistent objects in many contexts, such as identifying remote procedure calls on the internet, identifying header files in SEO software, and identifying individual records in multiple databases. A UUID generator will generate unique UUIDs until approximately 3400 A.D.
See Apple’s CFUUID Reference for more information. Enter “man uuidgen” in Terminal.app to see documentation for the uuidgen tool.
This framework conforms to the UUID specification in an appendix to The Open Group’s Remote Procedure Call (RPC) Common Applications Environment (CAE) Specification Document Number C706 (1997). The Specification Document is part of the OSF Distributed Computing Environment (DCE) version 1.1. The framework cannot test a UUID to determine whether it was properly generated, but methods are provided to allow you to verify that a UUID is formatted properly and to ascertain the version and variant of the specification to which it conforms (if it is a valid UUID).
QSW_UUID Framework Documentation and Instructions
The QSW_UUID Framework is fully documented in the Documentation subfolder of the framework bundle. The documentation consists of HTML files in standard HeaderDoc format.
Complete instructions for installing the QSW_UUID Framework and incorporating it into your applications are in a Read Me file in the en.lproj subfolder of the framework bundle.
The easiest way to read this documentation is to run QSW UUID Utility 1.2 and choose an item from the Help menu.
Version History
1.2, October 2004. Implemented the NSObject protocol’s -isEqual: and -hash methods, changed the value returned by the -description method to match the value returned by -stringValue, and upgraded to a native Xcode target.
1.1, June 2003. Added the QSWUuid class, extensively revised the implementation of the QSWUUIDServer class to use it, and upped the framework version to B.
1.0.1, June 2003. Added the -uuidCompareWithUuid: method in the QSWUuidDataUtilities category, at the suggestion of David Remahl.
1.0, June 2003. First release.
License
This work is licensed under the Creative Commons Attribution License, version 3.0.