Як отримати UUID в об'єкті c, як у Java, UUID використовується для створення унікальних випадкових чисел, що представляє 128-бітове значення.
Як отримати UUID в об'єкті c, як у Java, UUID використовується для створення унікальних випадкових чисел, що представляє 128-бітове значення.
Відповіді:
Спробуйте:
CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);
ОНОВЛЕННЯ:
Починаючи з iOS 6, існує простіший спосіб генерувати UUID . І як зазвичай, це можна зробити кількома способами:
Створіть рядок UUID:
NSString *uuid = [[NSUUID UUID] UUIDString];
Створити UUID:
[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init];
Створює об’єкт типу, NSConcreteUUIDдо якого можна легко передати NSString, і виглядає так:BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE
ПРИМІТКА з документації:
Примітка: Клас NSUUID не є безкоштовним мостом з CoreFoundation CFUUIDRef. За потреби використовуйте рядки UUID для перетворення між CFUUID та NSUUID. Два об’єкти NSUUID не гарантовано можуть бути порівнянними за значенням вказівника (як CFUUIDRef); використовуйте isEqual: для порівняння двох екземплярів NSUUID.
CFUUIDRef udidмабуть, слід CFUUIDRef uuidуникати потенційного плутанини UDID (унікальний ідентифікатор пристрою) з UUID (універсально унікальний ідентифікатор)
+ (NSString *)uniqueFileName
{
CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
CFRelease(theUniqueString);
return [(NSString *)string autorelease];
}
-(NSString*) myUUID()
{
CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
NSString *guid = (__bridge NSString *)newUniqueIDString;
CFRelease(newUniqueIDString);
CFRelease(newUniqueID);
return([guid lowercaseString]);
}
Ви можете використовувати CFUUID для iOS 5 або старішої версії та NSUUID для iOS 6 та 7.
- (NSString*)generateGUID{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [NSString stringWithFormat:@"%@", string];
}
Для Swift 5.0 використовуйте це,
let uuidRef = CFUUIDCreate(nil)
let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
let uuid = uuidStringRef as String? ?? ""