如何使用iOS创建GUID / UUID

时间:2009-01-09 05:45:16

标签: ios uuid guid

我希望能够在iPhone和iPad上创建GUID / UUID。

目的是能够为所有唯一的分布式数据创建密钥。有没有办法用iOS SDK做到这一点?

8 个答案:

答案 0 :(得分:316)

[[UIDevice currentDevice] uniqueIdentifier]

返回iPhone的唯一ID。

  

编辑:-[UIDevice uniqueIdentifier]现已弃用,应用程序将被App Store拒绝使用。以下方法现在是首选方法。

如果您需要创建多个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];

答案 1 :(得分:100)

以下是我使用的简单代码,符合ARC。

+(NSString *)getUUID
{
    CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
    NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
    CFRelease(newUniqueId);

    return uuidString;
}

答案 2 :(得分:86)

在iOS 6中,您可以轻松使用:

NSUUID  *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];

Apple's Documentations

中的更多详情

答案 3 :(得分:46)

查看Apple Developer文档,我发现iPhone OS 2.0及更高版本上提供了CFUUID对象。

答案 4 :(得分:22)

最简单的方法是使用NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]。请参阅NSProcessInfo课程参考。

答案 5 :(得分:22)

Swift

var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")

答案 6 :(得分:15)

Swift 3.0

var uuid = UUID().uuidString

答案 7 :(得分:7)

我在这里上传了我为ObjC简单但快速的Guid类实现:obj-c GUID

Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);

它也可以解析各种字符串格式。