1

私は Objective-C を初めて使用するので、この質問がばかげている場合はご容赦ください。しかし、それが何を意味するのか知りたいです。

- (void)setDetailItem:(id)newDetailItem
{
    if (_detailItem != newDetailItem) {
        _detailItem = newDetailItem;

        // Update the view.
        [self configureView];
    }
}

これらの行は、詳細ビュー コントローラーで正確に何をしますか? 新しいオブジェクトnewDetailItemが作成され、既存のオブジェクトに割り当てられるということdetailItemですか? 私はそれのアイデアを取得しません。

また

この新しいオブジェクトは、「detailItem」に既に存在する詳細と等しいということですか。newDetailItem = _detailItemでは、この新しいオブジェクトが の値を取得するように、と書くべきではありません_detailItemか?

これは私を少し混乱させました:(

御時間ありがとうございます!

4

2 に答える 2

1

このメソッドは、新しい値を に設定しています。newDetailItem_detailItem

このステートメントif (_detailItem != newDetailItem)では、メモリの場所を比較することにより、両方が同じオブジェクトであるかどうかをチェックしています。

_detailItem = newDetailItem;そのまま渡される newDetailItem に入れidられ_detailItemます。

ARC の場合: ARC では指定されていないため、値は保持/コピーされます。

によってプロパティに直接アクセスしています_detailItem。クラスで呼び出されるプロパティがありdetailItemます。

そして、メソッドを呼び出しconfigureViewます。

于 2013-03-22T15:13:50.657 に答える