Они не нужны, но их настоятельно рекомендуют за тот простой факт, что они разъясняют управление памятью.
Например, если вы объявляете выход через ivar, какова его политика сохранения? Это сохраняется? Это авто-релиз? Вы владелец? У кого-то еще есть это? Там много неясностей (особенно с теми проклятыми объектами верхнего уровня, которые на Mac ведут себя не так, как на iPhone).
С другой стороны, если вы объявляете розетку через свойство, нет никакой двусмысленности, потому что политика управления памятью прямо указана в объявлении. В дополнение к наличию свойства, разархивирование пера будет видеть установщик и использовать его, таким образом, гарантируя, что ничего странного не происходит с передачей права собственности на объект и т. Д.
В двух словах, вы можете объявлять торговые точки без использования @property
(что мы все должны были сделать до того, как они были введены в 10.5), но нет веских оснований для не их использования. Они действительно делают код намного понятнее относительно того, что именно происходит.
Для получения дополнительной информации об абсурдности управления памятью объектов пера, проверьте эту страницу в документации .