2009-03-04 12 views
3

Objective-C 2.0をピックアップし、ドット演算子を使用して「古い」方法ではなくプロパティにアクセスすることに利点があるかどうかを知りたがっています。私が意味するものの短い例。Objective-C 2.0のドット演算子

"古い" 方法:

[myFraction setNumerator: 1]; 
[myFraction setDenominator: 3]; 

は "新しい" 方法:

myFraction.numerator = 1; 
myFraction.denominator = 3; 

ありがとう!

ロドリゴ

+0

なぜ彼らはObjective-Cにそれをしますか? – OscarRyz

+0

リンクがありますか? – OscarRyz

答えて

7

唯一の違いは、入力の容易さと可読性です。意見は人から人へ:)読みやすく異なっている

1
私は古いやり方を主張ます

角括弧構文を使用すると、Objective-Cののメンバーにアクセスしていることが明らかにすることをmaxesオブジェクトであり、ドット構文はC構造体(または共用体)を扱っていることを示します。

それを超えると、それは単に個人的な選択と多かれ少なかれタイプの問題です。

+1

私はこれについて受け入れられた答えに値するとは確信していません。それは本当に主観的な問題です。私はAndrew Grantに投票しました:) –

2

オブジェクトを降順にするときにドット構文を使用し、実際にプロパティを設定するためにブラケットを使用します。そのよう

[self.view setFrame:CGRectMake(0, 0, 320, 480)]; 

の代わりに:

[[self view] setFrame:CGRectMake(0, 0, 320, 480)]; 
2

I実際に新しい構文のように - しかし、私は、Pythonプログラマーとして働くかもしれないので。

dotプロパティの構文は、KVC/KVOのキーパスとよく似ています。私の目は、ネストされた括弧よりも綺麗に見えます(そして、私はスキームが好きです。したがって、括弧の入れ子には反対しません!)、メッセージを渡すのではなくプロパティにアクセスするときに明示的にします。同じ。

オブジェクトのプロパティアクセスは、基本的に構造体または共用体のメンバーにアクセスする操作と同じであるため、構文と同じにする必要があります。

0

おそらくC++とC#のプログラマは、メンバ変数にアクセスするときにドット演算子に似ているでしょう。