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