self = [super init];
をカスタム初期化メソッドに書くのは意味がありますか?NSObjectをサブクラス化していますか?カスタム初期化を持つ可能性があるので、他のクラスをサブクラス化する必要があることはわかっていますが、NSObjectのinitメソッドは何もしませんか?NSObjectのinitメソッドは何もしますか?
答えて
オブジェクトは、初期化されるまで使用する準備ができていません。 NSObject
クラスで定義されたinit
メソッドは初期化を行いません。それは単に自己を返します。
したがって、NSObject
サブクラスでは、必ずしも[super init]
を呼び出す必要はありませんが、それでもお勧めします。それは単に優れたデザインです。スーパークラスを変更しても、それは動作します。
+1 "私はまだそれをお勧めします" - NSObjectの実装が変更されたり、クラスのスーパークラスを変更したりする可能性があります。スーパークラスの動作について推論するのはクラスの仕事ではありません。 – Tim
ありがとうございます。 :) –
あなたが 'self = [super init ...];'を実行していなければ、あなたのコードは**間違っています**。 NSObjectの実装が何をするかは問題ではありません。完全に脆弱性を最小限に抑えるために、そして文書化された正しいパターンに従って、より保守的なアプリにつながるので、どこでも一貫してパターンを使用してください。 – bbum
- 1. ラベルにNSObject initを表示
- 2. NSObject準拠クラスの-selfメソッドの目的は何ですか?
- 3. NSObjectの保持メソッドはアトミックですか?
- 4. UIAlertController NSObjectで何度も再利用
- 5. 目的cのinitメソッドの意味は何ですか?
- 6. NSObjectからのUIViewControllerのメソッドを呼び出しますか?
- 7. init()メソッドでエラーがスローされる理由は何ですか?
- 8. IOS - Swift CharacterタイプのObjC NSObjectに相当するものは何ですか?
- 9. メソッドsetFitsSystemWindows(true)は何もしません
- 10. window.onload = init();の違いは何ですか?およびwindow.onload = init;
- 11. initメソッドは構文砂糖を持つinit配列ですか?
- 12. HttpModule Initメソッドが何度か呼び出されます - なぜですか?
- 13. PHPのPOSTメソッドとメソッドは何も
- 14. CRC-8の実装。 initパラメータは何をしますか?
- 15. MyObject __init __()クラスのsuper(MyObject、self).__ init __()は何をしますか?
- 16. OutputStreamのflushメソッドは何もしませんか?
- 17. MapperのtoFormメソッドは送信時に何もしませんか?
- 18. 「super」がNSObjectの場合、なぜ[super init]がnilを返すのですか?
- 19. NSObjectのファイナライズは廃止予定です - 代わりに何をしますか?
- 20. Swoft 3 initメソッド。
- 21. カスタムinitメソッド
- 22. loadViewとinitメソッド
- 23. Initメソッドの継承
- 24. initメソッドのメリット/デメリット
- 25. スイフトのInitメソッド3
- 26. カスタムSCNViewのinitメソッド
- 27. コンパイラは[NSObjectのinitを]でエラーを返さないのはなぜ
- 28. なぜEntity Framewokメソッド "AsAsnumerable()"は何も返しませんか?
- 29. paintComponentメソッドはJLabelに何も表示しませんか?
- 30. Sencha Touch 2 - initとは何ですか?
これは良い習慣です。 – Kyle