3

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

1)

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

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

当我正在使用 IOS 8 及更高版本的应用程序时,哪个更可靠。

4

3 回答 3

2

您可以在NSHipster 的 uuid-udid-unique-identifier 帖子上找到详细信息。

为了发布“仅链接”的答案,这里是同一篇文章的摘录:

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

但是,如果您的应用程序面向 iOS 5 或更早版本,则您必须满足于 CFUUIDRef 上的 Core Foundation 功能

总而言之,虽然两者都返回一个有效的 UUID,但继续使用 NSUUID 更容易。

于 2015-11-03T06:27:39.233 回答
1

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

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

因此,对于 iOS 8 及更高版本,您应该NSUUID为了简单和方便而使用。

于 2015-11-03T06:24:26.000 回答
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];
于 2015-11-03T07:30:29.597 回答