Я хочу иметь возможность создавать GUID / UUID на iPhone и iPad.
Цель состоит в том, чтобы иметь возможность создавать ключи для распределенных данных, которые являются уникальными. Есть ли способ сделать это с помощью iOS SDK?
Я хочу иметь возможность создавать GUID / UUID на iPhone и iPad.
Цель состоит в том, чтобы иметь возможность создавать ключи для распределенных данных, которые являются уникальными. Есть ли способ сделать это с помощью iOS SDK?
Ответы:
[[UIDevice currentDevice] uniqueIdentifier]
Возвращает уникальный идентификатор вашего iPhone.
РЕДАКТИРОВАТЬ:
-[UIDevice uniqueIdentifier]
теперь устарела и приложения отклоняются из App Store для его использования. Метод ниже является сейчас предпочтительным подходом.
Если вам нужно создать несколько UUID, просто используйте этот метод (с ARC):
+ (NSString *)GetUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (__bridge NSString *)string;
}
РЕДАКТИРОВАТЬ: 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
В Свифте :
var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")
Самая простая техника заключается в использовании NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. См. Ссылку на класс NSProcessInfo .
Я загрузил мою простую, но быструю реализацию класса Guid для ObjC здесь: GUID obj-c
Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);
Он также может анализировать различные форматы строк.