如何使用iPhone SDK创buildGUID / UUID
我希望能够在iPhone和iPad上创build一个GUID / UUID。
目的是能够为分布式数据创build唯一的密钥。 有没有办法做到这一点与iOS SDK?
[[UIDevice currentDevice] uniqueIdentifier]
返回您的iPhone的唯一ID。
编辑:
-[UIDevice uniqueIdentifier]
现在已被弃用,应用程序被拒绝从App Store使用它。 下面的方法是现在的首选方法。
如果您需要创build多个UUID,只需使用此方法(使用ARC):
+ (NSString *)GetUUID { CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); CFRelease(theUUID); return (__bridge NSString *)string; }
编辑:2014年1月29日:如果您的目标是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的文档中有更多的细节
回顾Apple Developer文档我发现CFUUID对象在iPhone OS 2.0和更高版本上可用。
最简单的方法是使用NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
。 请参阅NSProcessInfo类的参考。
在Swift中 :
var uuid: String = NSUUID().UUIDString println("uuid: \(uuid)")
在Swift 3.0中
var uuid = UUID().uuidString
我已经在这里上传了一个简单而快速的ObjC Guid类实现: obj-c GUID
Guid* guid = [Guid randomGuid]; NSLog("%@", guid.description);
它也可以parsing各种string格式。