确定CFTypeRef是什么?

时间:2010-08-12 20:57:04

标签: objective-c core-foundation

我有一个返回 CFTypeRef 的函数。我不知道它究竟是什么。我该如何确定?例如,它可能是 CFStringRef

3 个答案:

答案 0 :(得分:17)

CFGetTypeID()

if (CFGetTypeID(myObjectRef) == CFStringGetTypeID()) {
  //i haz a string
}

答案 1 :(得分:9)

答案 2 :(得分:0)

如果您想了解开发过程中CFTypeRef的类型,可以使用以下代码段。

printf("CFTypeRef type is: %s\n",CFStringGetCStringPtr(CFCopyTypeIDDescription(CFGetTypeID(myObjectRef)),kCFStringEncodingUTF8));

这将打印该类型的可读名称,以便您知道它是什么。但Apple并不保证他们会保持这些描述一致,所以不要在生产代码中使用它。 (因为片段会泄漏内存,但你只应该在开发过程中使用它,所以谁在乎呢)。