如何在ios中生成UUID

Sau*_*hav 75 objective-c ios

如何在目标c中获取UUID,如在Java UUID中用于生成表示128位值的唯一随机数.

Rap*_*tor 165

尝试:

CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);
Run Code Online (Sandbox Code Playgroud)

更新:

从iOS 6开始,有一种更简单的方法来生成UUID.和往常一样,有多种方法可以做到:

创建UUID字符串:

NSString *uuid = [[NSUUID UUID] UUIDString];
Run Code Online (Sandbox Code Playgroud)

创建一个UUID:

[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init]; 
Run Code Online (Sandbox Code Playgroud)

创建一个类型的对象,NSConcreteUUID可以很容易地转换为NSString,看起来像这样:BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

文档中的说明:

注意: NSUUID类与CoreFoundation的CFUUIDRef没有免费桥接.如果需要,使用UUID字符串在CFUUID和NSUUID之间进行转换.两个NSUUID对象不能保证与指针值相当(如CFUUIDRef所示); 使用isEqual:比较两个NSUUID实例.

  • 如果您使用的是iOS 6,则可以使用NSUUID:NSString*uuid = [[NSUUID UUID] UUIDString]; (6认同)
  • 在第1行,`CFUUIDRef udid`应该是`CFUUIDRef uuid`,以避免UDID(唯一设备标识符)与UUID(通用唯一标识符)的混淆 (2认同)

Mel*_*vin 7

迅捷版Raptor的答案:

let uuid = NSUUID().UUIDString
Run Code Online (Sandbox Code Playgroud)


Ber*_*sms 6

+ (NSString *)uniqueFileName
{
    CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
    CFRelease(theUniqueString);
    return [(NSString *)string autorelease];
}
Run Code Online (Sandbox Code Playgroud)