2012-02-13 3 views
0

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

Спасибо.

+0

Что означает «локальное объявление вашего типа с классом видимости»? – ZhangChn

+1

Вы пытались найти в Интернете какие-либо шансы или перелистывать документы Apple? – mbh

+0

[?] (Http://d.images.memegenerator.net/instances/500x/14507811.jpg) – Veilkrand

ответ

1

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

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

+0

Так что для меня не имеет смысла использование свойств внутри реализации. Это правильно? – Veilkrand

1

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

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

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

Смежные вопросы