Як згенерувати UUID в ios


Відповіді:


175

Спробуйте:

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

ОНОВЛЕННЯ:

Починаючи з iOS 6, існує простіший спосіб генерувати UUID . І як зазвичай, це можна зробити кількома способами:

Створіть рядок UUID:

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

Створити UUID:

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

Створює об’єкт типу, NSConcreteUUIDдо якого можна легко передати NSString, і виглядає так:BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

ПРИМІТКА з документації:

Примітка: Клас NSUUID не є безкоштовним мостом з CoreFoundation CFUUIDRef. За потреби використовуйте рядки UUID для перетворення між CFUUID та NSUUID. Два об’єкти NSUUID не гарантовано можуть бути порівнянними за значенням вказівника (як CFUUIDRef); використовуйте isEqual: для порівняння двох екземплярів NSUUID.


6
Якщо ви використовуєте iOS 6, ви можете використовувати NSUUID: NSString * uuid = [[NSUUID UUID] UUIDString];
Eli Burke

2
у рядку 1, CFUUIDRef udidмабуть, слід CFUUIDRef uuidуникати потенційного плутанини UDID (унікальний ідентифікатор пристрою) з UUID (універсально унікальний ідентифікатор)
CgodLEY


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

Ви насправді не повинні просто залишати код без пояснень, яким би прямим він не був
Sirens

Помилка, не впевнений, чому ви вибрали мою конкретну відповідь для коментарів через півтора року XD.
Bergasms

Я не підозрював, що йому виповнилося 1,5 року .. Ну, ну, це прекрасно працює .. :)
Sirens

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


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

1
Відповіді лише для коду не корисні для спільноти. Будь ласка, подивіться « Як відповісти»
JimHawkins

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.