xCode 3では、プライベートインスタンス変数をクラスに定義しました。クライアントコードのprivate変数に直接アクセスすると、コンパイラはなぜエラーではなく警告を表示しますか?コードは引き続き実行できます。この警告は、これが将来的には難しいエラーであると言います。 「ハードエラー」とはどういう意味ですか?ありがとう。Objective-Cのプライベートインスタンス変数について
1
A
答えて
0
さて、ハードエラーは、警告ではなく将来的にエラーになることを意味します。なぜそれが今の警告なのか分かりません。クラスに存在しないメソッドを呼び出そうとすると、それは警告に過ぎないという同じ理由があると思います。
1
ハードエラーとは、将来的にコンパイラが動作するように動作する(つまり、定義された可視範囲外のインスタンス変数に直接アクセスするときにソースファイルをコンパイルしない)ことを意味します。
現在のところ、コンパイラはObjective-Cに可視性の制限を強制していません。しかし、あなたがしてはいけないことをやっていることを思い出させ、あなたが偶然にそれをした場合に注意を促すという警告がそこにあります。
私は、なぜ可視性が強制されないのかを推測しなければならない場合は、FoundationライブラリとCoreFoundationライブラリの間にあるフリーダイヤルのブリッジングで、おそらく厳密に言えば、可視ではならないインスタンス変数にアクセスするライブラリコード。
一般に、とにかくインスタンス変数に直接アクセスするのは悪い考えです。 Obj-C 2.0を使用できる限り、純粋なデータモデルオブジェクトを設計する場合は、プロパティのようなものを使用する方が良いでしょう。
関連する問題
- 1. 親クラスのプライベートインスタンス変数にアクセス
- 2. ObjectiveCの静的変数
- 3. Javascriptでプライベートインスタンス変数にアクセスする静的パブリックメソッド
- 4. 子クラスからの親のプライベートインスタンス変数へのアクセス?
- 5. Objective-Cでプライベートインスタンス変数を定義する新しい方法ですか?
- 6. ObjectiveC(iOS)のオブジェクト変数に文字列を変換する方法
- 7. NumberFormatter - ObjectiveC
- 8. ObjectiveCのAMF0パーサー
- 9. ユニットテストの変数名について
- 10. 関数内の複数の変数についての質問
- 11. Selenium IEDriver- PATH変数について
- 12. ObjectiveC blocks Java equivalent
- 13. ヒープで作成された抽象クラスのプライベートインスタンス変数はどこにありますか?この状況で
- 14. ObjectiveC UISwitchはデフォルトでOFFに設定されています
- 15. ステートメントJavaでプライベートインスタンスを使用する
- 16. 2D動的メモリ割り当て - ObjectiveC
- 17. プロシージャで使用されるグローバル変数/モジュール変数についての警告?
- 18. DTraceのカーネル変数について学ぶには?
- 19. ラックのソースコード内の変数の型について混乱
- 20. Javaの隠蔽/シャドウイングメンバ変数についての質問
- 21. メモリについてアプリケーションのレイアウトと変数の論理アドレス
- 22. ObjectiveCクラスの既定の変数値はどこに設定する必要があります
- 23. は、私は3つの整数の変数を持っている三つの変数
- 24. メンバ変数を隠すことについての警告?
- 25. CoffeeScript変数スコープについての混乱
- 26. 関数で使用される変数の順序についての説明
- 27. 複数のconstを1つの変数宣言に入れてください
- 28. AFNetworking 3.Xを使用してBOOLをJSONにポストするObjectiveC
- 29. objectiveCからjavascript関数を呼び出す
- 30. ObjectiveC /ココアScreencapture /クロスヘッドマウスポインタのセレクタのヘルプ
Objective-Cの動的性質のため、クラスに存在しないメソッドを呼び出すことができます。コンパイラがコンパイル時にそれを知っているかどうかにかかわらず、実行時にクラスにメッセージを送ることができます。 – Abizern
私は、メンバ変数が(PHPのように)同じように動作するかもしれないと考えていました。 –