7 ответов:
попробуй:
CFUUIDRef udid = CFUUIDCreate(NULL); NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);обновление:
начиная с 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 не является бесплатным мостом с CFUUIDRef CoreFoundation. Использовать идентификатор строки, чтобы конвертировать между CFUUID и NSUUID, если это необходимо. Два объекта NSUUID не могут быть сопоставимы по значению указателя (как CFUUIDRef); используйте isEqual: для сравнения двух экземпляров nsuuid.
+ (NSString *)uniqueFileName { CFUUIDRef theUniqueString = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUniqueString); CFRelease(theUniqueString); return [(NSString *)string autorelease]; }
Swift версия ответ Раптора:
let uuid = NSUUID().UUIDString
-(NSString*) myUUID() { CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault); CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID); NSString *guid = (__bridge NSString *)newUniqueIDString; CFRelease(newUniqueIDString); CFRelease(newUniqueID); return([guid lowercaseString]); }
Я предлагаю вам проверить эту библиотеку:https://github.com/fabiocaccamo/FCUUID
Он предоставляет очень простой API для получения универсально уникальных идентификаторов с различными уровнями устойчивости.
Он совместим с: iOS5, iOS6, iOS7, iOS8
вы можете использовать CFUUID для iOS 5 или более низкой версии и NSUUID для iOS 6 и 7. для обеспечения большей безопасности вы можете хранить свой UUID в keychain
- (NSString*)generateGUID{ CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); CFRelease(theUUID); return [NSString stringWithFormat:@"%@", string]; }
Comments