Is there a built in function equivalent to .NET's
Guid.NewGuid();
in Cocoa?
My desire is to produce a string along the lines of 550e8400-e29b-41d4-a716-446655440000
which represents a unique identifier.
Is there a built in function equivalent to .NET's
Guid.NewGuid();
in Cocoa?
My desire is to produce a string along the lines of 550e8400-e29b-41d4-a716-446655440000
which represents a unique identifier.
or there's the
uuidgen
command line tool.Check out the Wikipedia article and the Core Foundation page.
Since 10.8 you could also use: NSString *uuidString = [[NSUUID UUID] UUIDString];
UUIDs are handled in Core Foundation, by the CFUUID library. The function you are looking for is CFUUIDCreate.
FYI for further searches: these are most commonly known as UUIDs, the term GUID isn't used very often outside of the Microsoft world. You might have more luck with that search term.
Since 10.3 or so, you can use
[[NSProcessInfo processInfo] globallyUniqueString]
. However, while this currently generates a UUID, it never has been and still isn't guaranteed to do that, so if you really need a UUID and not just any unique string, you should use CFUUID.Some code:
For a string UUID, the following class method should do the trick:
if you really want the bytes (not the string):
where CFUUIDBytes is a struct of the UUID bytes.