2

iOSでは、多くの場合、私のプロジェクトには似たような画面がありますが、所々にいくつかの違いがあります。時間が経つにつれて、私が最初のアーキテクチャを作成している間、私が気付かないような同様の画面が表示される可能性があります。

したがって、そのような場合、私が行うことは、列挙型プロパティがほとんどなく、if-elseステートメントをコードで区別することです。

醜いですね!特に、TableViewデータソースとデリゲートメソッドに何かを実装する場合、どこでも同じif-elseまたはswitchケースがあります。

別のVCを作成する場合は、同じコードをあちこちにコピーして貼り付ける必要があります。それらの1つにバグがある場合、そのどこにでもあり、追跡するのは非常に困難です。

締め切りを考えると、将来同様の画面が表示されるかどうかわからないため、親クラスに共通点を事前に配置することは非常に困難になります。

では、これに陥らないための一般的なアプローチは何ですか?

4

1 に答える 1

8

3つのオプションがあるようです:

inheritanceMySpecialViewController のスーパークラスを用意します。これには、利用できると便利なメソッドがあり、サブクラスでオーバーライドして、そのクラスに追加の機能を追加できます。事前にこれを行う「時間がない」と述べていますが、それで問題ありません。どのメソッドが一般的であるかを理解し、事後にスーパークラスを作成し、ビューコントローラーをそのサブクラスにします。

categories共有機能をオーバーライドする必要がなく、複数の継承の問題が発生している場合は、View Controller 全体で使用するヘルパー メソッドを含むカテゴリを作成します。

utility class 再利用しているメソッドが独自のクラスで機能し、何らかの理由で上記の 2 つのオプションが機能しない場合は、使用する共通メソッドを持つ MyUtils クラスを作成してください。

于 2013-02-07T05:46:33.213 に答える