ドット表記法とセッターによるプロパティの設定には微妙な違いがあるようです。私のObjective-Cのコードでオブジェクトのプロパティをドット表記法とセッターで設定する違いは何ですか?
、私は@property IDを委譲
クラスAとクラスの両方として宣言ので、クラスAまたはクラスBのインスタンスのいずれかに設定することができる特性を有しますBは同じプロパティとメソッドを持っています。 methodM1を1つまたは2つ呼び出すと、実装(機能)が異なります。私は次の行が(ドット表記法を介して直接プロパティを使用して)動作しないことがわかり
self.delegate = [[Class A alloc] init];
self.delegate.property1 = @"ABCD" ; //Does not work, get an error that property1 not defined on id
しかし、次の行が
[self.delegate setPropert1:@"ABCD"] ; //works
違いは何ですが?作品setterの場合、setProperty1メソッドに応答するクラスがあるので、コンパイラはそれを許可しますか?はい、私の元の理解であったQの答えが間違っているように見えます。私はドット表記法はセッターに置き換えられません。
Difference between setting a property directly and using its setter?
最後の段落とリンクされた質問に関しては、送信者が「id」型でない限り、他の質問の答えは完全に正しいものです。 – rmaddy
私は同様の質問に答えました[ここで私はその違いについてもう少し詳しく説明しました](http://stackoverflow.com/q/37179987/104790)。 –