Xcodeで分割ビューアプリケーションを選択すると作成される標準のサンプル分割ビューで遊んでいました。いくつかのフィールドを追加した後、詳細ビューに表示するためにいくつかのフィールドを追加する必要がありました。
元のサンプルで何か面白いことが起こった場合、マスタービューは詳細ビューに「detailItem」プロパティを設定し、詳細ビューはそれを表示します。
- (void)setDetailItem:(id) newDetailItem
{
if (_detailItem != newDetailItem) {
_detailItem = newDetailItem;
// Update the view.
[self configureView];
}
私はそれが何をするのか、そしてすべてを理解しているので、私がそれで遊んでいる間。_detailItemの代わりにself.detailItemを使用した場合も同じだと思いました。これは、クラスのプロパティだからです。
しかし、私が使用したとき
self.detailItem != newDetailItem
私は実際にこのメソッドが絶えず呼び出されるループで立ち往生していて、シミュレーターで他に何もできません。
私の質問は、アンダースコア変数(ivar?)とプロパティの実際の違いは何ですか?私はここでいくつかの投稿を読みましたが、それは単なる客観的なCの慣習のようですが、実際にはいくつかの違いがありました。