Я хочу мати можливість створити GUID / UUID на iPhone та iPad.
Наміром є можливість створити ключі для розподілених даних, які є унікальними. Чи можна це зробити за допомогою iOS SDK?
Я хочу мати можливість створити GUID / UUID на iPhone та iPad.
Наміром є можливість створити ключі для розподілених даних, які є унікальними. Чи можна це зробити за допомогою iOS SDK?
Відповіді:
[[UIDevice currentDevice] uniqueIdentifier]
Повертає унікальний ідентифікатор вашого iPhone.
EDIT:
-[UIDevice uniqueIdentifier]
тепер застаріло, а додатки відмовляються від App Store за його використання. Нижче наведений спосіб є кращим підходом.
Якщо вам потрібно створити кілька UUID, просто використовуйте цей метод (за допомогою ARC):
+ (NSString *)GetUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (__bridge NSString *)string;
}
EDIT: 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: obj-c GUID
Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);
Він також може аналізувати різні та рядкові формати.