関数を別々のクラスに分離してカプセル化することは、大量のコードを分解するための一般的な概念です。1 つのタスクに関係するすべてのメソッドは、オブジェクトとしてひとまとめにすることができます。通常は、何らかの UIView サブクラス、または独自の情報画面に値する大きなタスクの UIViewController サブクラスです。たとえば、必要な UIImage を設定すると、画像のスクロールを独自に処理するものがある場合があります。ただし、それを超えて、通常、単一のコントローラーのコードを分割するべきではありません。コントローラーには、MVC パターン内のモデルと共に表示されるビューを保持するすべての接着剤が含まれています。したがって、モデルに依存しないすべての機能がビューに分割されたら、
コードを個別のファイルに分割することはお勧めしません。すべての目的が 1 つであるためです。画面上で何が起こっているかを調整し、ビューがモデルと対話できるようにすることです。ただし、私が通常行うことは、管理しているタスクに応じてコードを分類およびソートすることです。したがって、すべてのライフ サイクル メソッドと通常のメソッドが一番上に表示され、その後にすべてのテーブル ビュー メソッド、イメージ ビューアー メソッドなどが続きます。
これにより、特定のタスクに関連するコードを簡単に見つけることができ、pragma
ディレクティブを使用するとさらに簡単になります。メソッドの外側で、並べ替えられたメソッドのグループ間で、 a を使用pragma mark
してコード内の場所に識別子を割り当てることができます。これは、次のコード例で行ったように、ジャンプ バーからアクセスできます。
#pragma mark - UIViewController Lifecycle Methods:
- (void) viewWillAppear{
//stuff
};
- (void) loadView{
//stuff
};
#pragma mark - UITableView Delegate & Datasource Methods:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//stuff
};
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//stuff
};
ここで、Xcode のコード ビューアーの上部にあるジャンプ バーに移動し、一番右のオブジェクトをクリックしてメソッドを見つけると、次のように表示されます。
コードを並べ替え、プラグマ マークでマークし、可能なすべてのコードを他の UIView と UIViewController に分割した後、コードを複数のファイルに分割する必要があるとは思わないでしょう。ジャンプ バーを使用して、コードの任意のセクションに移動することができます。これは、ファイルをスワップするのと同じように効果的です。ただし、この方法では、コードを 1 つのクラスから断片化してあちこちにばらばらにすることはありません。