如何比较两个CFUUID(Mac OS X Carbon / CoreFoundation)?

时间:2011-01-31 02:17:39

标签: objective-c macos macos-carbon uuid core-foundation

如何比较Mac OS X中CoreFoundation Carbon框架中的两个CFUUIDRef?是否有更简单的方法来检查两个CFUUID是否相等,而不是将它们转换为字符串然后进行比较?

2 个答案:

答案 0 :(得分:9)

CFUUID是一种CFType,因此您可以使用与任何其他CF对象相同的CFEqual函数。

答案 1 :(得分:1)

我不确定本身是否有规范或推荐的方法,但以下是否足够?

#define CompareUUIDs(u1, u2) memcmp(CFUUIDGetUUIDBytes(u1), CFUUIDGetUUIDBytes(u2))

将使用如下:

if (CompareUUIDs(u1, u2) == 0) {
    // UUIDs are equal
} // etc..

或者,因为你只对他们是否平等感兴趣:

#define UUIDsAreEqual(u1, u2) (memcmp(CFUUIDGetUUIDBytes(u1), CFUUIDGetUUIDBytes(u2)) == 0)

将使用如下:

if (UUIDsAreEqual(u1, u2)) {
    // UUIDs are equal
} // etc..