十数個のクラスとカテゴリを持つカスタム フレームワークがあるとします。それらはすべて、標準のココア クラスを継承/拡張します。このため、私のフレームワークはコンパイル中に < Cocoa > にリンクします。
私の質問は、< QuartzCore > を必要とするクラスを追加する場合、それをパッケージ化するための推奨される方法は何ですか?
1) フレームワークにクラスを追加して QuartzCore をインポートするだけの場合、フレームワークのすべてのコンシューマーも QuartzCore をインポートする必要があります。
2) クラスを別のフレームワークに移動する場合、すべてのコンシューマーは、QuartzCore だけでなく、両方のフレームワークをインポートして完全な機能を取得する必要があります。最初のフレームワークのどのクラスも、2 番目のフレームワークを使用できません。
3) #ifdef #endif などを実行してから、QuartzCore フレームワークを弱リンクして、Cocoa 標準クラスと QuartzCore 依存クラスの両方が単一のフレームワーク内にあるが、消費者が QuartzCore を追加する必要がないようにする方法はありますか?彼らのプロジェクトに?QuartzCore が理想的に存在しない場合、クラス/カテゴリはランタイムで利用できません。