【问题标题】:How do I compare two CFUUIDs (Mac OS X Carbon/CoreFoundation)?如何比较两个 CFUUID(Mac OS X Carbon/CoreFoundation)?
【发布时间】:2011-01-31 02:17:39
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    #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 的回复。 :-)
    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多