myView.frame Vs. self.myView.frame - PullRequest
       2

myView.frame Vs. self.myView.frame

0 голосов
/ 25 сентября 2010

Я знаю, что часто рекомендуется использовать @property аксессоры, и я знаю, что важно использовать self.myView = x вместо mView = x, но:

  1. Не достаточно myView.frame? Файл AtomicElementFlippedView.m в TheElements имеет self.wikipediaButton.frame=buttonFrame;. Разве я не должен пропустить self, если я получаю / устанавливаю свойство своего ивара, а не самого ивара?

  2. Это также делает [self.wikipediaButton addTarget:...];. Но разве я не должен опускать здесь self? Разве я не должен всегда вызывать функцию на ivar, а не свойство? Т.е. [wikipediaButton addTarget:...];

Спасибо!

Мэтт

Ответы [ 2 ]

2 голосов
/ 25 сентября 2010

Оба будут работать.

Основная причина использования геттеров в классе заключается в том, что изменения кода просты. Если вы решили хранить свои данные по-другому или динамически создавать их по запросу, есть одна точка изменения. С представлениями это не так важно большую часть времени , но это может пригодиться, когда вы заменяете это представление на полную иерархию представлений (ваш первоначальный вид может быть частью этого).

0 голосов
/ 25 сентября 2010

Я бы сказал, что основной причиной, по которой вы хотите использовать установщик свойств вместо прямого доступа к ivar, является просто согласованность.Да, вы можете получить доступ к ivar напрямую, и вы, как правило, будете в порядке.Однако я бы сказал, что стилистически лучше использовать один и тот же метод для настройки и получения.Поэтому, если вы используете установщики свойств внутри, вы также должны использовать получатели свойств внутри.

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