这[[NSUUID new] UUIDString]& CFUUIDRef

时间:2015-11-03 06:10:46

标签: ios uniqueidentifier nsuuid

任何人都可以让我知道通过以下两个实现创建唯一ID之间的区别

1)

  CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault);
    NSString *udidString = (NSString*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid));

2)NSString *guid = [[NSUUID new] UUIDString];

当我在IOS 8及以上版本的应用程序上工作时,哪一个更可靠。

3 个答案:

答案 0 :(得分:1)

NSUUID已添加到iOS 6中的Foundation,以便轻松创建UUID。

CFUUIDRef是核心基础功能。如果您的应用面向iOS 5或更早版本,则应该使用此功能。

因此,对于iOS 8及更高版本,您应该使用NSUUID以简化和方便。

答案 1 :(得分:1)

您可以在NSHipster's uuid-udid-unique-identifier post找到详细信息。

为了发布'仅链接'这里的回答是同一篇文章的摘录:

  

NSUUID已添加到iOS 6中的Foundation,以便轻松创建   的UUID。

     

但是,如果您的应用针对iOS 5或更早版本,则必须满足于此   核心基础在CFUUIDRef

上运行

总而言之,尽管两者都返回有效的UUID,但请继续使用NSUUID,因为它更容易。

答案 2 :(得分:1)

非常简单

1.如果您的应用面向iOS 5或iOS 5以下,则属于CoreFoundation   你也需要设置

CFUUIDRef uuid = CFUUIDCreate(NULL);
NSString *UUID = CFUUIDCreateString(NULL, uuid);

2.如果您的应用程序针对iOS6或iOS 6以上,它属于Foundation,您还需要设置

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