Должен ли я получить доступ к Ivars непосредственно в реализации класса? - PullRequest
1 голос
/ 19 декабря 2009

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

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

Ответы [ 2 ]

2 голосов
/ 20 декабря 2009

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

1 голос
/ 04 октября 2011

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

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

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

...