Как сгенерировать UUID в ios

Как получить UUID в объекте c, например, в Java UUID используется для генерации уникальных случайных чисел, которые представляют 128-битное значение.

Ответ 1

Try:

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

UPDATE:

Начиная с iOS 6, существует более простой способ генерации UUID. И, как обычно, есть несколько способов сделать это:

Создайте строку UUID:

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

Создайте UUID:

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

Создает объект типа NSConcreteUUID и может быть легко добавлен к NSString и выглядит следующим образом: BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

ПРИМЕЧАНИЕ из документации:

Примечание. Класс NSUUID не является бесплатным мостом с CoreFoundations CFUUIDRef. Используйте строки UUID для преобразования между CFUUID и NSUUID, если это необходимо. Два объекта NSUUID не могут быть сопоставимы по значению указателя (как CFUUIDRef); use isEqual: для сравнения двух экземпляров NSUUID.

Ответ 2

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

Ответ 3

Быстрая версия Raptor answer:

let uuid = NSUUID().UUIDString

Ответ 4

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

Ответ 5

вы можете использовать CFUUID для iOS 5 или более низкой версии и NSUUID для iOS 6 и 7. для обеспечения большей безопасности вы можете сохранить свой UUID в цепочке ключей

Ответ 6

Я предлагаю вам проверить эту библиотеку: https://github.com/fabiocaccamo/FCUUID

Он предоставляет очень простой API для получения универсально уникальных идентификаторов с разными уровнями стойкости.

Он совместим с: iOS5, iOS6, iOS7, iOS8

Ответ 7

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

Ответ 8

#import <AdSupport/AdSupport.h>

NSString* sClientID = [[[ASIdentifierManager sharedManager]advertisingIdentifier] UUIDString];

Лучший UUID, потому что:

  • он никогда не изменится (* даже если приложение будет удалено)
  • Apple одобряет это.