2010-11-23 17 views
4

私は、次の違い何、@synthesize foo;を使用している場合:Objective-C:メッセージ構文とドット構文。違いは何ですか?

// message syntax 
[myObj setFoo:5]; 
[myObj foo]; 

// dot syntax 
myObj.foo = 5; 
myObj.foo; 

私はドット構文の一貫性を好むが、それは私が何かをやっている場合、私は知りません私は心配する必要があります。

追加情報は大きな助けになります。

答えて

12

ドット構文の使用とメッセージ構文の使用には機能的な違いはありません。

メッセージ構文を使用すると、言語全体とより一貫性があり、ドット構文は、それを使用した言語から来ているプログラマーの便宜のために実装されたばかりです(Javaが気になる)。

私が尋ねるのは、どちらを選んでも、一貫していることです。 単一のプロパティセッターを組み合わせて一致させないでください! (複数議論のセッターは明らかに免除されている)。

+2

が合意しました。どちらか一方に固執する。私はドット構文を使うことを好みます。これは、オブジェクトを保持したりコピーしたりするようなことをしていることを伝えているからです。 –

+0

私はそれを2番目に!しかし、私はまた、ドット表記法を使用するように(試して)、メンバーがプロパティとメソッドのどちらに定義されているかを一目で見ることができます。 – jtalarico

+0

"混じり合わないでください"というのは意味がありません。すべてのプロパティを設定するためにドット表記法を使用し、2つの引数をとるセッターを追加する必要がある場合はどうしますか? –

3

これらは同じです。

[myObject setValue: [NSNumber numberWithIntValue:5] forKey:@"foo"]; 
[myObject valueForKey:@"foo"]; 

しかし、本質的に通話が同じである:

ドット構文も経由してアクセスもすることができます@property年代のアクセスを意味するために使用されます。

関連する問題