В каких случаях лучше отказаться от использования self при обращении к переменным экземпляра? - PullRequest
0 голосов
/ 07 мая 2009

Это может быть действительно глупый вопрос для начинающих, НО:

Если у вас есть хорошие переменные экземпляра в вашем классе, такие как, например, UIScrollview * scrollView2, то зачем вам обходить метод получения и установки, отказавшись от

[self.scrollView2 addSubview:imageView];

, а точнее делать

[scrollView2 addSubview:imageView]; 

? Я имею в виду ... переход через добытчик не повредит, и на самом деле я думал, что это всегда путь. Но во всех примерах Apple я пропускаю эту модель повсюду. Они редко используют self.someInstanceVariable при вызове методов. Или я что-то не так понял?

Я начал делать то же самое с Apple, но я хотел бы знать: почему?

Ответы [ 3 ]

3 голосов
/ 07 мая 2009

Это имеет отношение к KVO (Наблюдение значения ключа) и KVC (Кодирование значения ключа) . Если вы обойдете геттер или сеттер, объекты, следящие за значением, не получат сообщение.

2 голосов
/ 07 мая 2009

Раньше я тоже обходил метод получения / установки, пока не выяснил, что привязки не работают при прямом доступе к переменной. Другими словами, кодирование значения ключа работает только при доступе к свойству с помощью функций получения / установки.

РЕДАКТИРОВАТЬ: См. эту страницу для соответствия KVC.

1 голос
/ 07 мая 2009

Как правило, вы не будете использовать свойства в init или dealloc, лучше обращаться к переменным экземпляра напрямую, поскольку ваш объект может не находиться в "безопасном" состоянии.

...