CFUUID和NSUUID类生成的UUID有什么区别?

3

我被两个不同类别(CFUUID 和 NSUUID)生成的 UUID 弄糊涂了。它们是相同的吗?


你试过了吗?生成双向的? - Lithu T.V
没有。我已经阅读了文档。 - Dee
http://www.macworld.com/article/2031573/apple-sets-may-1-deadline-for-udid-iphone-5-app-changes.html - Lithu T.V
1个回答

2
根据UUID的类文档,它们确实是不同的类(即它们不是toll-free bridged):
注意:NSUUID类与CoreFoundation的CFUUIDRef没有toll-free bridged。如有需要,请使用UUID字符串在CFUUID和NSUUID之间进行转换。两个NSUUID对象不能保证通过指针值进行比较(如CFUUIDRef所示)。使用isEqual:来比较两个NSUUID实例。
我的理解是它们都生成一个UUID,你需要管理它(存储等)。每次使用这两个函数都会生成不同的UUID,因此你永远不必比较它们的结果(这就是这两个函数的用途)。
如果你必须比较UUID,则最好将它们转换为字符串并将其作为字符串使用。

我可以在所有iOS 4.3版本及以上版本中使用CFUUID作为唯一标识符吗?而不是创建单独的MAC地址或者使用从iOS 6开始生成的NSUUID? - Dee
是的,我的项目确实使用CFUUID。 - David Doyle
我在苹果文档中找到了关于相等性测试的引用文本,但我也注意到NSUUID符合可比协议,根据定义支持==和!=。它如何支持可比性但需要使用.isEqual呢? - Phill Apley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接