对于我的 Cocoa 应用程序,我需要知道给定的 CGContextRef 是否是 PDF 上下文(而不是位图或屏幕上下文),以便在我的 CALayer 的 drawInContext 实现中采用不同的渲染路径。使用 iOS SDK,我可以这样做:
BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());
但 UIGraphics* 函数在 OS X SDK 中不可用。我希望能够使用:
BOOL isPDf = CFGetTypeID(currentContext) != CGContextGetTypeID();
但它似乎并不成立,并且没有 CGPDFContextGetTypeID() 函数返回特定于 PDF 的类型 ID。
有什么方法可以识别给定 CGContextRef 的类型而不做任何讨厌的事情,比如设置静态变量?