Это в 3 раза больше того, что по сути одинаково
Нет, не так.
@property (retain) aMember;
В приведенной выше строке объявляется свойство, чтобы компилятор знал,можно отправлять сообщения -aMember
и -setAMember:
объектам вашего класса.Он также сообщает компилятору (и разработчикам), что свойство является свойством retain (т. Е. Объект, для которого вы устанавливаете свойство, будет сохранено), что оно доступно для чтения / записи и является атомарным.
@synthesize aMember;
Приведенная выше строка сообщает компилятору, что он должен автоматически генерировать методы setter и getter для объявленного свойства.Вы можете пропустить это, но тогда вам нужно написать свой собственный установщик и получатель.
[aMember release]; // in dealloc
Есть ли, чтобы сообщить среде выполнения, что когда объект освобождается, ему больше не нужно хранить ссылку на него?переменная экземпляра.Это необходимо, потому что, когда вы используете подсчет ссылок, а не сборщик мусора, среда выполнения автоматически не очищает нежелательные объекты.
Каждая из этих строк выполняет свою функцию.Таким образом, вы не делаете то же самое три раза.