Как хранить UUID как int - PullRequest
       5

Как хранить UUID как int

4 голосов
/ 21 сентября 2011

У меня возникли некоторые проблемы здесь. Я использую следующий код для генерации uuid в моем приложении.

    - (NSString *)GetUUID
{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [(NSString *)string autorelease];
}

Этот код возвращает объект NSString обратно.Теперь я хочу сохранить сгенерированный UUID как unsigned int.Любые предложения, пожалуйста, как я могу сделать это здесь.Спасибо.

Ответы [ 2 ]

7 голосов
/ 21 сентября 2011

Согласно странице Википедии , UUID имеют длину 128 бит.Наибольшее значение int, с которым вы сможете работать, составляет 64 бита.Поэтому я бы сказал, что вы не можете хранить его в int, потому что там просто нет места.

1 голос
/ 09 марта 2018

Преобразовать UUID в строку, используя .UUIDString

Взять свойство .hash строки.

Привести к int.

int numericFormUUID = (int)UUIDString.hash;


Примечание: коллизия возможна, как всегда, при хешировании.Два пользователя могут получить одно и то же значение, тогда как UUID гарантированно уникален.

...