8

ここで「->」表記とは何かを明確に説明しました。CとObjective-Cでのドット( "。")演算子と矢印( "->")演算子の使用

しかし、Objective-Cでのこの表記法の実際の使用例はまだわかりません。

これが私が話していることの例です:https ://github.com/gnustep/gnustep-base/blob/master/Source/NSOperation.m-なぜinternal->lockのようなこれらすべての文字列がそこに書かれているのか-なぜivarやドット表記を使用するだけではありませんか?


関連トピック:isaポインタを割り当てる代わりのobject_setClass()のパフォーマンス

4

2 に答える 2

7

->あなたの質問から、オペレーターが何をするかを理解しているかどうかは明確ではありません。

GNUStep NSOperation ソースのその例は、ivar使用しています。それが->演算子の動作です — ポインターを逆参照し、名前付きメンバーにアクセスします。

「なぜドット表記を使わないのか」については。明白な答えは、アクセサーを経由したくなかったということです。アクセサーを経由すると、直接アクセスよりも遅くなり、「ダム」な内部状態で作業しているこのような場合には、実際の利点はありません。

では、Objective-C コードでいつ使用する必要があるのでしょうか? 主に、ポインターを介して構造体にアクセスしている場合。別のオブジェクトのインスタンス変数に直接アクセスする必要はほとんどありません。もしそうなら、そのコードはルールではなく例外です。

于 2013-03-15T19:03:38.953 に答える