2015-11-03 63 views
2

任何人都可以让我知道什么是这两个实施创建的唯一ID之间的差别在下面请告诉我之间的差异[NSUUID新] UUIDString] CFUUIDRef

1)

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

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

哪一个更可靠,因为我正在从iOS 8和以上的应用程序工作。

回答

1

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

张贴利益“的链接只有”回答这里摘录形成相同的文章:

NSUUID加入基金会在iOS 6中,以此来轻松地创建 的UUID。

如果你的应用目标的iOS 5或更早版本,但是,你不得不接受 核心基础功能上CFUUIDRef

综上所述,虽然都返回一个有效的UUID,继续使用NSUUID作为其更轻松。

+0

感谢您的快速响应,应使用相同的:) –

1

NSUUID已被添加到基金会在iOS 6作为一种方式来轻松创建UUID。

CFUUIDRef是一个核心基础功能。如果您的应用以iOS 5或更早版本为目标,则应该使用此功能。

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

+0

感谢您的快速响应,应使用相同的:) –

+0

总是乐意帮助:)。你能接受这个答案吗? – Abhinav

1

很简单

1.如果你的应用目标的iOS 5或更低的iOS 5,它属于的CoreFoundation 还需要设置

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

2.如果您的应用程序的目标iOS6的以上的iOS 6,它属于基础你也需要设置

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