私はいくつかのクラスSimpleButton
を持っています。それはButton
クラスの子供です。 Button
クラスにはいくつかのメソッドがあり、SimpleButton
にオーバーライドされています。今、もし私がsimpleButton
からこのメソッドにアクセスしたいと思ったら、[super someMethod];
に電話する必要がありますが、simpleButton
の外からアクセスするにはどうすればいいですか?私はあなたがそのようにそれを行うことはできませんクラスのオブジェクトへのポインタを介して "スーパー"へのアクセス
1
A
答えて
2
...
SimpleButton *button;
[(Button*)button.superclass someMethod];
が、これがない作品を試してみました。サブクラスでメソッドをオーバーライドした場合、そのクラスの公開メソッドを実装のメソッドに変更しました。スーパー実装を呼び出す別のメソッドを用意する必要があります。
foo
メソッドをオーバーライドしたとします。あなたはこの種のものを行う必要がある場合しかし、その後、あなたはおそらくあなたがメソッドをオーバーライドしている理由を再考する必要がある
-(void)superFoo
{
[super foo];
}
:新しい方法、内部的にこれをん
superFoo
[button superFoo];
を作成します。最初の場所。おそらく、独自の部分を行い、オーバーライドするのではなく、スーパーインプリメンテーション自体を呼び出す新しいメソッドをサブクラスで作成する必要があります。
関連する問題
- 1. SQLIteデータベースを介したオブジェクトへのアクセス
- 2. dladdr:ポインタへのポインタ対オブジェクトへのポインタ
- 3. Swiftクラスのオブジェクトへのポインタを使用
- 4. クラス内の関数ポインタへのアクセス
- 5. C++の基本クラス "ポインタへのポインタ"オブジェクトへの派生クラスオブジェクトの割り当てとアクセス
- 6. 配列アイテムへのポインタは、文字配列へのポインタを介して一般的にアクセスしますか?
- 7. 別のクラスのオブジェクトへのポインタ?
- 8. クラスへのポインタ*
- 9. オブジェクトではなくクラスへのC++ポインタ
- 10. ポインタとしてのunordered_mapsへのアクセス
- 11. 別のクラスを介してCUDAメモリへの配列ポインタの転送
- 12. ポインタへのポインタとオブジェクトへのポインタの意味
- 13. perl6のクラスへのコンストラクタへのポインタ
- 14. C++ - スマートポインタ - テンプレートを介してベースクラスへの共有クラスのポインタを渡す
- 15. long long intへのポインタへのアクセス
- 16. 他のクラスのオブジェクトへのアクセス
- 17. 他のクラスのAudioPlayerオブジェクトへのアクセス
- 18. VBA - 別のオブジェクト(プロパティセット)を介したオブジェクトプロパティへのアクセス
- 19. ポインタのベクトルへのアクセス?
- 20. CUDAのオブジェクトへのポインタの配列へのポインタ
- 21. オブジェクトへのベクトルのポインタ
- 22. C++のオブジェクトへのポインタ
- 23. オブジェクトへのポインタ==最初のメンバへのポインタ?
- 24. HTTPSを介したリモートサーバーサービスへのアクセス
- 25. COMオブジェクトからクラスへのアクセス
- 26. C++ - "unknown"クラスへのポインタ
- 27. SWIGとJava:Javaへのオブジェクト出力パラメータへのポインタへのC++ポインタのマッピング方法
- 28. idオブジェクトのポインタへのポインタにどのようにアクセスしますか?
- 29. boost :: gil bgr8_view_tオブジェクトへのポインタ
- 30. カプセル化とオブジェクトへのポインタ
応答のためのTnx。私はすでにそれについて考えていましたが、これはちょっとダーティです。私のプログラムの論理を再考するべきだと思う。 – SentineL