есть ли причина использовать свойство для ивара, которое используется только внутри класса? - PullRequest
1 голос
/ 04 апреля 2011

Есть ли причина использовать свойство для ивара, которое используется только внутри класса в классе?

Я вижу, что использование свойств в target-c для класса помогает другим классам, получающим доступ к экземплярупеременные, однако только для внутреннего использования переменной экземпляра есть какое-либо преимущество / необходимость использовать свойство для него?На самом деле для собственности вы должны быть "собой".кажется, что до его доступа к нему, в отличие от только имени переменной экземпляра.

Возможно, мне следует разбить этот вопрос на:

  • для переменных экземпляра, представляющих элементы управления IBOutlet (в случае, если это особенное)
  • любую другую переменную экземпляра, которую вы можетенужно через методы класса, чтобы помочь

Ответы [ 2 ]

5 голосов
/ 04 апреля 2011

Конечно. Если вам нужно изменить значение этой переменной в моменты, отличные от -init и -dealloc, использование @property означает, что вы можете позволить компилятору обрабатывать управление памятью за вас.

1 голос
/ 05 апреля 2011

Я обычно не использую конструктор интерфейса, но я думаю, что вы всегда хотите свойства для своих IBOutlets.Я только что ответил на вопрос парня, который получил плохой доступ, потому что он этого не сделал.Вы могли бы обойтись без (я не знаю), но управление памятью становится проще.

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

self.object = newObject;

заменяет

[object release];
object = [newObject retain];

Если вы не собираетесь использовать свое свойство вне класса, вы можете объявить его в своем файле .m, так же, как вы делаете это с закрытыми методами.Таким образом, другие классы не будут знать о существовании вашей собственности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...