3

我对使用两个不同的类(CFUUID 和 NSUUID)生成的 2 个 uuid 感到困惑。他们都一样吗?

4

1 回答 1

2

根据 UUID 的类文档,它们确实是不同的类(即它们不是免费桥接的):

注意:NSUUID 类不是与 CoreFoundation 的 CFUUIDRef 桥接的免费电话。如果需要,使用 UUID 字符串在 CFUUID 和 NSUUID 之间进行转换。不能保证两个 NSUUID 对象可以通过指针值进行比较(就像 CFUUIDRef 一样);使用 isEqual: 比较两个 NSUUID 实例。

我对此的解释是它们都生成一个你必须管理的 UUID(存储等)。当然,这两个函数在您每次使用它们时都会生成不同的 UUID,因此您永远不必比较两者的结果(这是两个函数的重点)。

如果您必须比较 UUID,那么最好将它们转换为字符串并按原样使用它们。

于 2013-06-12T08:40:09.407 回答