Как создать GUID / UUID с помощью iPhone SDK
Я хочу иметь возможность создавать GUID/UUID на iPhone и iPad.
намерение состоит в том, чтобы иметь возможность создавать ключи для распределенных данных, которые являются уникальными. Есть ли способ сделать это с помощью iOS SDK?
8 ответов:
[[UIDevice currentDevice] uniqueIdentifier]
возвращает уникальный идентификатор вашего iPhone.
EDIT:
-[UIDevice uniqueIdentifier]
Теперь устарел и приложения отклоняются из магазина приложений для его использования. Метод, приведенный ниже, теперь является предпочтительным подходом.Если вам нужно создать несколько UUID, просто используйте этот метод (с ARC):
+ (NSString *)GetUUID { CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); CFRelease(theUUID); return (__bridge NSString *)string; }
EDIT: Jan, 29 2014: Если вы нацелены на iOS 6 или более позднюю версию, теперь вы можете использовать гораздо более простой метод:
NSString *UUID = [[NSUUID UUID] UUIDString];
вот простой код, который я использую, совместимый с ARC.
+(NSString *)getUUID { CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault); NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId); CFRelease(newUniqueId); return uuidString; }
в iOS 6 Вы можете легко использовать:
NSUUID *UUID = [NSUUID UUID]; NSString* stringUUID = [UUID UUIDString];
Подробнее документация Apple
просматривая документацию разработчика Apple, я нашел CFUUID объект доступен на iPhone OS 2.0 и более поздних версиях.
самый простой метод заключается в использовании
NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Смотрите NSProcessInfo ссылка на класс.
Я загрузил свою простую, но быструю реализацию класса Guid для ObjC здесь: obj-c GUID
Guid* guid = [Guid randomGuid]; NSLog("%@", guid.description);
Он также может анализировать различные строковые форматы и из них.