Должен ли я обращаться к Ivars непосредственно в реализации класса?

Я некоторое время сомневался в этом, но хотел бы знать, что люди думают о доступе к переменным экземпляра непосредственно из реализации класса Objective-C?

Использование аксессоров и мутаторов упрощает многие вещи, но для простых вещей плохо ли обращаться к переменной экземпляра напрямую? Отличается ли лучшая практика для частных переменных экземпляра?


person Jonathan Sterling    schedule 19.12.2009    source источник


Ответы (2)


Если вы всегда используете свои методы доступа, вы можете быть уверены, что управление памятью обрабатывается правильно, особенно если эти методы синтезированы. При этом, если мы говорим о доступе к иварам примитивных типов, ничто не помешает использовать их непосредственно в реализации ваших методов экземпляра.

person NSResponder    schedule 20.12.2009
comment
Я не согласен с тем, чтобы всегда использовать свойства. Пожалуйста, посмотрите мой ответ, почему. - person Moszi; 04.10.2011

Извините, но я не согласен с тем, чтобы всегда использовать свойства в классе для доступа к иварам.

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

Если ваше свойство является атомарным, то, очевидно, вы ДОЛЖНЫ использовать как геттер, так и сеттер. Однако очень удобно всегда использовать сеттер...

person Moszi    schedule 04.10.2011
comment
Спасибо за ваш вклад! Последние несколько лет я склоняюсь к вашей точке зрения. Особенно с АРК. - person Jonathan Sterling; 05.10.2011