3

重複の可能性:
ドットまたはブラケット構文を使用してプロパティを設定することには違いがありますか?

.hファイルでラベルを定義し、.mファイルでそのテキストを変更したい場合、との使用には本当に違いがlabel.text = @"..."あり[label setText:@"..."]ますか?彼らはまったく同じことをしているように見えます、そしてそれが事実なら、なぜそれをするための異なる方法ですか?

4

1 に答える 1

10

内部の仕組みに違いはありません。最初の方法ではlabel、コンパイラがプロパティの存在を確認できるようなタイプである必要があります。2番目の方法は、コンパイラが正確な型を認識していない場合でも機能します(つまり、型がである場合id)。

2番目の構文は元の構文です。最初の構文は、利便性と読みやすさのために追加されました。これらの構文を使用することについては、さまざまな考え方があります。一部の人々は、どちらかの構文を使用しないように指示し、その非常に正当な理由を提供します。ただし、最終的には、これを選択します。1つの構文を選択し、そのままにしておく必要があります。あなたが一貫していて、読者があなたの好みを知っている限り、彼らはどちらの方法でもあなたのコードを読んで維持することに問題はないはずです。

于 2012-07-25T04:32:53.920 に答える