Я играю со стандартным представлением с разметкой, созданным при выборе приложения с разделенным представлением в Xcode, и после добавления нескольких полей мне нужно было добавить несколько полей, чтобы отобразить их в подробном представлении.
и что-то интересное в исходном образце мастер-представление задает свойство detailItem в подробном представлении, и на нем отображается подробное представление.
- (void)setDetailItem:(id) newDetailItem
{
if (_detailItem != newDetailItem) {
_detailItem = newDetailItem;
// Update the view.
[self configureView];
}
Я понимаю, что это делает и все, поэтому пока я играл с ним. Я думал, что это будет то же самое, если вместо _detailItem я использовал self.detailItem, так как это свойство класса.
однако, когда я использовал
self.detailItem != newDetailItem
Я действительно застрял в цикле, где этот метод постоянно называется, и я не могу сделать что-либо еще в симуляторе.
Мой вопрос: какова фактическая разница между значениями подчеркивания (ivar?) и свойствами? Я читаю некоторые сообщения здесь, это, кажется, всего лишь объективная конвенция C, но на самом деле это имело какое-то значение.