2010-05-11 2 views
4

Это довольно нубийский вопрос - я смотрю пример кода кода какао, а также есть блоки @interface в файлах .m, а также заголовки. Например, в заголовке класса AppDelegate навигация UIWindow и UI определяются как переменные экземпляра, но объявления @property фактически создаются в файле реализации. Есть ли функциональная причина для этого, это стилистический выбор, или ...?В @implementation есть @interface - почему?

ответ

7

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

То же самое относится к методам и свойствам класса - если вы хотите использовать объявленные свойства для ваших переменных экземпляра, но не хотите, чтобы они были общедоступными, вам не обязательно объявлять их в заголовке. Расширения класса позволяют это делать, см., Например, "How to make a private property?".

+0

А, спасибо, это имеет смысл! –

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