Объявление частной собственности в вашей реализации класса? - PullRequest
0 голосов
/ 13 февраля 2012

Извините, если это слишком очевидно для вас. Я все еще изучаю объективные и правильные шаблоны проектирования. Не могли бы вы объяснить, почему это хорошая идея объявить свойство внутри @interface в файле реализации класса как частное свойство? Вы просто можете использовать локальное объявление вашего типа с областью видимости класса, поскольку никто за пределами вашего класса не будет использовать какой-либо метод получения или установки для этого свойства.

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Когда вы объявляете что-то как @private, обычно переменную экземпляра или свойство, оно становится доступным только в методах класса, который его объявил.Попытка получить доступ к нему из подкласса приводит к ошибке.

Я знаю, что вы не просили об этом, но есть также @protected, когда свойство объявляется так, оно становится доступным только в методах класса, который его объявил, и в методах любого класса.который наследует от этого класса.

Источником этой информации является лучшая книга, которую я знаю о Objective-C - Learning Objective-C 2.0 от Robert Clair.

1 голос
/ 13 февраля 2012

Используя семантику свойства, компилятор обрабатывает поведение управления памятью «бесплатно». Даже если ваши данные являются частными в вашем классе, компилятор, обеспечивающий правильное освобождение / сохранение / копирование, экономит время и ошибки в будущем.

С современным ARC-компилятором это, вероятно, теперь не проблема.

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