カテゴリを使用して Objective-C クラスの実装を複数の@implementation
ブロックに分割した場合、iOS アプリの結果のバイナリが大きくなったり、パフォーマンスに影響したりすることはありますか?
どうやら、実行時にクラスのカテゴリの詳細を取得することはできませんか? . では、結果のバイナリは、他のすべてが等しいと仮定して、カテゴリの有無にかかわらず同一であるべきではありませんか?
バックグラウンド
UIViewController
かなり複雑になっているカスタム サブクラスがあります。
iOS Developer Library : Objective-C によるプログラミング : カテゴリ
メソッドを既存のクラスに追加するだけでなく、カテゴリを使用して複雑なクラスの実装を複数のソース コード ファイルに分割することもできます。たとえば、幾何学的計算、色、グラデーションなどが特に複雑な場合は、カスタム ユーザー インターフェイス要素の描画コードを別のファイルに配置して、残りの実装に配置することができます。
#pragma mark
カテゴリのもう 1 つの優れた点 (たとえば sと比較して) は、Xcode では@implementation
ブロック全体をコードで折りたたむことができることです (ただし、2 つ#pragma mark
の の間のコードは折りたためません)。これは、メイン クラスと同じファイルにカテゴリ (オプションで折りたたむ) を保持する場合に便利です。