Преобразовать уникальный идентификатор iPhone в целое число - PullRequest
0 голосов
/ 30 сентября 2011

Я создал веб-сервис, который получает целое число в качестве уникального идентификатора для телефона.Позже я понял, что UID iPhone - это строка NSst в этом формате: 5DE31FA12-XXXXX-XXXXX-XXXXXXX.Поэтому я хотел бы преобразовать это значение в целое число.

Вот способ получения UID в формате NSString.

CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
NSString *theUID = (NSString *)string;

Как я могу преобразовать NSString * theUID в целоезначение, чтобы отправить его в веб-службу?

EDIT : Как правильно упомянул CocoaFu, невозможно вставить это значение в int.Могу ли я каким-то образом преобразовать его в строку NSString в формате, подобном «ddddddddddddddddddddddddddd» (где d = 0-9), чтобы хэшировать его и затем отправить?Изменить веб-сервис сейчас невозможно.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Наибольшее целое число составляет 8 байтов или 64 бита. Показанный вами UUID содержит 26 шестнадцатеричных символов, что составляет 104 бита. Это просто не вписывается в целое число. Используйте строку.

CFUUIDCreate возвращает строку с 32 шестнадцатеричными символами, то есть 128 битами или 16 байтами. Не обращайте внимания на символы «-», они просто для удобства чтения. Вот пример из CFUUIDCreate: BDFC3FE6-3A5E-48C0-B18D-E42B8E275428

1 голос
/ 30 сентября 2011

UDID не помещается в int. Формат, который вы перечислили - это то, что дает вам симулятор. UDID устройства состоит из 40 символов буквенно-цифровых символов.

...