Saurabh Jadhav
Saurabh Jadhav

Reputation: 1171

How to generate UUID in ios

How to get a UUID in objective c, like in Java UUID is used to generate unique random numbers which represents 128 bit value.

Upvotes: 81

Views: 85276

Answers (7)

3lil636wm
3lil636wm

Reputation: 7660

Swift version of Raptor's answer:

let uuid = UUID().uuidString

Upvotes: 11

For Swift 5.0, Use this,

    let uuidRef = CFUUIDCreate(nil)
    let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
    let uuid = uuidStringRef as String? ?? ""

Upvotes: -2

Raptor
Raptor

Reputation: 54258

Try:

CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);

UPDATE:

As of iOS 6, there is an easier way to generate UUID. And as usual, there are multiple ways to do it:

Create a UUID string:

NSString *uuid = [[NSUUID UUID] UUIDString];

Create a UUID:

[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init]; 

Creates an object of type NSConcreteUUID and can be easily casted to NSString, and looks like this: BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

NOTE from the Documentation:

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

Upvotes: 177

Bergasms
Bergasms

Reputation: 2203

+ (NSString *)uniqueFileName
{
    CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
    CFRelease(theUniqueString);
    return [(NSString *)string autorelease];
}

Upvotes: 6

Sargis
Sargis

Reputation: 1334

- (NSString*)generateGUID{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [NSString stringWithFormat:@"%@", string];
}

Upvotes: 0

Veeru Sharma
Veeru Sharma

Reputation: 35

you can use CFUUID for iOS 5 or lower version and NSUUID for iOS 6 and 7. for making it more secure you can store your UUID in keychain

Upvotes: 1

Dominic Sander
Dominic Sander

Reputation: 2704

-(NSString*) myUUID()
{
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}

Upvotes: 3

Related Questions