İPhone ve iPad'de bir GUID / UUID oluşturabilmek istiyorum.
Amaç, benzersiz olan dağıtılmış veriler için anahtarlar oluşturmaktır. Bunu iOS SDK ile yapmanın bir yolu var mı?
İPhone ve iPad'de bir GUID / UUID oluşturabilmek istiyorum.
Amaç, benzersiz olan dağıtılmış veriler için anahtarlar oluşturmaktır. Bunu iOS SDK ile yapmanın bir yolu var mı?
Yanıtlar:
[[UIDevice currentDevice] uniqueIdentifier]
İPhone'unuzun Benzersiz Kimliğini döndürür.
DÜZENLE:
-[UIDevice uniqueIdentifier]
artık kullanımdan kaldırıldı ve uygulamalar App Store'dan kullanım için reddediliyor. Aşağıdaki yöntem şimdi tercih edilen yaklaşımdır.
Birkaç UUID oluşturmanız gerekirse, bu yöntemi kullanın (ARC ile):
+ (NSString *)GetUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (__bridge NSString *)string;
}
EDIT: 29 Ocak 2014: iOS 6 veya üstünü hedefliyorsanız, artık çok daha basit bir yöntem kullanabilirsiniz:
NSString *UUID = [[NSUUID UUID] UUIDString];
İşte ARC ile uyumlu, kullandığım basit kod.
+(NSString *)getUUID
{
CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
CFRelease(newUniqueId);
return uuidString;
}
İOS 6'da şunları kullanabilirsiniz:
NSUUID *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];
Apple'ın Dokümantasyonunda daha fazla ayrıntı
Apple Developer belgelerini gözden geçirme CFUUID nesnesinin iPhone OS 2.0 ve sonraki sürümlerinde kullanılabildiğini gördüm .
In Swift :
var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")
En basit teknik kullanmaktır NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. NSProcessInfo sınıfı referansına bakın .
ObjC için bir Guid sınıfının basit ama hızlı uygulamasını burada yükledim: obj-c GUID
Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);
Çeşitli dize formatlarına da ayrışabilir.