【发布时间】:2011-01-31 02:17:39
【问题描述】:
如何比较 Mac OS X 中 CoreFoundation Carbon 框架中的两个 CFUUIDRefs?除了将它们转换为字符串然后进行比较之外,是否有更简单的方法来检查两个 CFUUID 是否相等?
【问题讨论】:
标签: objective-c macos macos-carbon uuid core-foundation
如何比较 Mac OS X 中 CoreFoundation Carbon 框架中的两个 CFUUIDRefs?除了将它们转换为字符串然后进行比较之外,是否有更简单的方法来检查两个 CFUUID 是否相等?
【问题讨论】:
标签: objective-c macos macos-carbon uuid core-foundation
【讨论】:
我不确定本身是否有规范或推荐的方法,但以下就足够了吗?
#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..
【讨论】:
CFEqual,尽管非常糟糕。请参阅 Peter Hosey 的回复。 :-)