私の Cocoa アプリでは、CALayer の drawInContext 実装で別のレンダリング パスを使用するために、特定の CGContextRef が (ビットマップまたは画面コンテキストではなく) PDF コンテキストであるかどうかを知る必要があります。iOS SDK を使用すると、次のようにできます。
BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());
ただし、UIGraphics* 関数は OS X SDK では使用できません。私は使用できることを望んでいました:
BOOL isPDf = CFGetTypeID(currentContext) != CGContextGetTypeID();
しかし、それは当てはまらないようで、PDF に固有のタイプ ID を返す CGPDFContextGetTypeID() 関数はありません。
静的変数を設定するような厄介なことをせずに、特定の CGContextRef の型を識別する方法はありますか?