私はCore Data機能の拡張に取り組んでいます。ユーザーのNSApplicationDelegate
がテンプレートのmanagedObjectContext
アクセサを実装しているかどうかをテストしたいコードブロックがあります。しかし、私はAppKitフレームワークやNSApplication
(コマンドラインアプリケーションでこの機能を使うかもしれない)を必要としたくないので、ブロックを#ifdef
で囲んでみたいと思います。Objective-Cで#importedファイルをテストする一般的な方法はありますか?
NSApplication.hを見ると、NSAppKitのバージョン(NSAppKitVersionNumber10_0
)には#define
があります。私はそれらの任意の1つをテストすることができますが、それはかなり正しいと感じません。プリプロセッサには、現在のコンパイル環境にフレームワークまたは特定のヘッダが含まれているかどうかをテストする一般的な方法がありますか?
NSClassFromStringを使用するようにお願いします。私はあなたの最初の主張によって混乱します。 '#import'はヘッダファイルの一回の実行を保証します。たとえプリコンパイルされたヘッダーが存在するかどうかをテストしていても、トラッキングが必要な場合があります。 –
@Seamus:プリプロセッサは、インクルードされたファイルの内部リストを保持している可能性が高いですが、このリストへのインタフェースを提供する必要はありません。 – dreamlax
右。そのデータへのインタフェースがあるかどうかは、私が後にしたものとほとんど同じです。 –