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

发布于 2024-10-15 10:10:42 字数 122 浏览 7 评论 0原文

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

How can I compare two CFUUIDRefs from the CoreFoundation Carbon framework in Mac OS X? Is there an easier way to check if two CFUUIDs are equal other than converting them to strings and then comparing those?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阳光下的泡沫是彩色的 2024-10-22 10:10:42

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

A CFUUID is a kind of CFType, so you would use the same CFEqual function you use for any other CF objects.

┾廆蒐ゝ 2024-10-22 10:10:42

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

#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..

I'm not sure if there is a canonical or recommended method per se, but would the following suffice?

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

It would be used as follows:

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

Alternatively, as you're only really interested in whether they are equal or not:

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

It would be used as follows:

if (UUIDsAreEqual(u1, u2)) {
    // UUIDs are equal
} // etc..
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文