Это довольно нубийский вопрос - я смотрю пример кода кода какао, а также есть блоки @interface в файлах .m, а также заголовки. Например, в заголовке класса AppDelegate навигация UIWindow и UI определяются как переменные экземпляра, но объявления @property фактически создаются в файле реализации. Есть ли функциональная причина для этого, это стилистический выбор, или ...?В @implementation есть @interface - почему?
4
A
ответ
7
Если вам просто нужно, например, некоторые пользовательские делегаты для работы с другим классом внутренне, нет необходимости публиковать интерфейс в заголовке.
Он просто добавляет излишний шум и делает доступными интерфейсы, которые могут быть не предназначены для общего использования или не полезны вне контекста класса.
То же самое относится к методам и свойствам класса - если вы хотите использовать объявленные свойства для ваших переменных экземпляра, но не хотите, чтобы они были общедоступными, вам не обязательно объявлять их в заголовке. Расширения класса позволяют это делать, см., Например, "How to make a private property?".
Смежные вопросы
- 1. Частный ivar в @interface или @implementation
- 2. Objective-C @interface и разъяснение @implementation
- 3. C# Property Access vs Interface Implementation
- 4. Почему в файле.m есть еще один @interface?
- 5. Разница между @interface и @implementation фигурные скобки в .m
- 6. Переменная класса, определенная в @implementation, а не @interface?
- 7. Что такое @property, @synthesize, @implementation, @interface в программировании на iphone?
- 8. EventBus android implementation, почему отражение
- 9. переменные, объявленные в @implementation
- 10. Objective-C @implementation variables
- 11. Добавить Ивар в @implementation
- 12. Использование «я» в @implementation
- 13. Новый класс какао в Xcode, дающий @interface и @implementation в файле реализации?
- 14. Неполное @implementation Старт.экр
- 15. @interface и @implementation в том же файле (без файла заголовка, тестового шаблона Xcode)
- 16. Trie implementation
- 17. Eclipse Implementation View
- 18. spring autowire multiple implementation
- 19. Как организованы секции @interface, @implementation и программ (в файлах) в программе-объекте?
- 20. Dynatable Implementation
- 21. Частные переменные в @implementation
- 22. Почему Xcode 4.3 Вставляет @interface ClassName() в файл реализации?
- 23. @implementation, вары и ARC
- 24. Gensim Dictionary Implementation
- 25. UIView setFrame custom implementation
- 26. Разница между объявлением переменной в @Implementation и @Interface под .m файлом
- 27. Какая разница между @interface или @implementation, находясь в .h или .c
- 28. JQuery base64 function implementation
- 29. C++ singleton implementation
- 30. B + tree implementation, * * vs *
А, спасибо, это имеет смысл! –