Когда обращаться к свойствам с помощью «self»

Я прочитал несколько вопросов на этом сайте по этой проблеме, я понимаю следующее:

self.property обращается к методу получения / установки, созданному вручную или с помощью @synthesize. В зависимости от того, объявлено ли свойство как «сохранение», «копирование» и т. Д., Счетчик сохранения изменяется правильно, например, в качестве сохраненного свойства, освобождается предыдущее значение, которому присвоено новое значение с «сохранением», и увеличивается счетчик сохранения на 1.

Свойства обычно объявляются с одноименными переменными экземпляра (могут отличаться, если вы выполняете присвоение вручную). Обычно это происходит потому, что сгенерированные @synthesize методы доступа используют переменную экземпляра для ссылки на объект в памяти, а затем выполняют соответствующие команды.

Мой вопрос основан на том факте, что во многих примерах self.property и property взаимозаменяемы для разных вещей, и у меня возникают проблемы с определением правил. Один из примеров приложения «Рецепты» в Apple Docs имеет следующее:

self.navigationItem.title = recipe.name;
nameTextField.text = recipe.name;    
overviewTextField.text = recipe.overview;    
prepTimeTextField.text = recipe.prepTime; 

и ...

self.ingredients = sortedIngredients;

Каждое из этих свойств имеет связанные переменные частного экземпляра с тем же именем. Все они объявлены одинаково с атрибутами «неатомарно, сохранить». Каждый из них высвобождается в dealloc ...

Тем не менее, доступ к «ингридиентам» осуществляется через self, а доступ к «papTimeTextField »осуществляется напрямую.

В чем причина разницы в методах доступа?

Что делать, если я обращаюсь к делегату представления? Или объект основных данных, который был передан контроллеру представления его предыдущим контроллером представления как сохраненное свойство?

Большое спасибо

7
задан Glynton 24 November 2010 в 21:20
поделиться