[[NSUUID new] UUIDString] 和 CFUUIDRef 之间有什么区别

Whats this difference between [[NSUUID new] UUIDString] & CFUUIDRef

任何人都可以让我知道通过下面给出的这两种实现创建唯一 ID 之间的区别是什么

1)

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

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

哪个更可靠,因为我正在开发 IOS 8 及更高版本的应用程序。

NSUUID 在 iOS 6 中被添加到 Foundation 中作为一种轻松创建 UUID 的方法。

CFUUIDRef 是核心基础函数。如果您的应用程序面向 iOS 5 或更早版本,您应该使用它。

因此,对于iOS 8及以上,为了简单和方便,您应该使用NSUUID

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

为了发帖'link only'这里的回答是同一篇文章的摘录:

NSUUID was added to Foundation in iOS 6 as a way to easily create UUIDs.

If your app targets iOS 5 or earlier, however, you have to settle for Core Foundation functions on CFUUIDRef

总而言之,尽管 return 都是有效的 UUID,继续使用 NSUUID 更容易。

很简单

1.If 您的应用目标 iOS 5 或以下 iOS 5,它属于 CoreFoundation 你还需要设置

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

2.If 你的app targets iOS6 or above iOS 6,属于Foundation你也需要设置

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