Я прочитал несколько вопросов на этом сайте по этой проблеме, я понимаю следующее:
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 »осуществляется напрямую.
В чем причина разницы в методах доступа?
Что делать, если я обращаюсь к делегату представления? Или объект основных данных, который был передан контроллеру представления его предыдущим контроллером представления как сохраненное свойство?
Большое спасибо