すべてはオブジェクトの予想される動作に依存しますが、基本的なことを指摘しましょう。スーパークラスによって実装されたデフォルトの動作が必要な場合は、オーバーライドされたメソッドでスーパークラスの実装を呼び出します (オーバーロードではなくオーバーライドを意味します)。
したがって、次の質問をする必要があります。
1) スーパークラスの実装は何をしますか?
2) オブジェクトに必要ですか?
では、スーパークラスの etc. は何をしtouchesBegan:withEvent:
ますか? それはあなたのクラス階層に依存します。クラス階層内のカスタム クラスが既にこれらのメソッドをオーバーライドしている可能性があり、それらの動作が必要な場合とそうでない場合があります。カスタム クラスはまだこれらのメソッドをオーバーライドしていないと思いますので、Cocoa の実装のみを確認する必要があります。
touchesBegan:withEvent:
UIResponder クラスで最初に定義されます。UIResponder のドキュメントを見てみましょう。
このメソッドのデフォルトの実装は何もしません。ただし、UIResponder の直接の UIKit サブクラス、特に UIView は、メッセージをレスポンダー チェーンに転送します。
ここで理論が得られます。クラスが UIResponder から直接継承する場合、スーパークラスの実装を呼び出す必要はまったくありません。とにかく何もしないからです。UIView などの他の UIKit サブクラスから継承する場合、スーパークラスの実装を呼び出すと、レスポンダー チェーンにメッセージを転送できます。ただし、オーバーライドtouchesBegan:withEvent:
はおそらく、サブクラスがタッチ イベント自体を処理する必要があることを意味するため、イベントをレスポンダー チェーンに転送したくない場合があります。したがって、ここでスーパークラスの実装を呼び出したくないと思います。
それは本当に状況に依存します。UIScrollView をサブクラス化し、touches...
メソッドの 1 つを実装するとします。ユーザーがドラッグしたときにビューをスクロールしたい場合は、スーパークラスの実装を呼び出す必要があります。これは、スクロールを処理するためです。
要約すると、決定するには上記の 2 つの質問に答えることができなければなりません。スーパークラスの実装が何をするかを知るには、Apple ドキュメントを読んでください。多くの場合、スーパークラスの実装が一般的な予想される動作に不可欠である場合、ガイド ドキュメントでは、スーパークラスの実装を呼び出すように明示的にアドバイスしています。