0

私はスタンフォードのCS193PiOSコースに取り組んでおり、課題の1つで、複数のUITableViewが必要です。課題のメモで、インストラクターは次のように述べています。

「そして、素晴らしいオブジェクト指向プログラミング設計スキルを使用して、できるだけ多くのコードを再利用できるようにします。このアプリケーションのMVCの多くは非常に似ています。何かを行うために、UITableViewControllerのサブクラスを作成してから、そのクラスのサブクラスは、もう少し洗練された何かをします。」

だから持っているのではなく

@interface myFirstTableViewController : UITableViewController

@interface mySecondTableViewController : UITableViewController

彼は私たちが使用することを暗示しています:

@interface myFirstTableViewController : UITableViewController

@interface mySecondTableViewController : myFirstTableViewController

私がこのようにそれをするときmySecondTableViewController、以下の方法だけがあります:

initWithNibName
viewDidLoad
didReceiveMemoryWarning

ここで何が起こっているのですか?でmySecondViewController、とは異なるメソッドのみを実装する必要がありますか(わずかな変更を加えてからバージョンmyFirstTableViewControllerを呼び出す可能性がありますか?super

また、これは物事を行うための正しい方法ですか、それとも私のカスタムtvcsのそれぞれをUITableViewControllerの個別のサブクラスとして持つのが最善ですか?

4

1 に答える 1

2

より可能性の高いパターンは次のとおりです。

@interface CommonTableViewController : UITableViewController
...
@interface FirstTableViewController : CommonTableViewController
...
@interface SecondTableViewController : CommonTableViewController

ただし、文脈自由規則を設定することは困難です。それは実際には、どれだけ類似したコードを共通の親に移動できるかに依存します。(そして、物事を構造化する方法は、すべてがうまくいく場合でも、さらにもう少し間違っているとmySecondTableViewControllerは限りません。)myFirstTableViewController

于 2012-11-01T16:23:26.527 に答える