Я только начинаю разрабатывать приложение в ios, и я прочитал так много учебников для этого, но все же я не удовлетворен этим учебником. Я хочу знать, почему нам нужно использовать категорию и какие преимущества.Почему мы должны использовать категорию в IOS?
ответ
Категория позволяет добавлять методы к существующему классу - даже к тому, для которого у вас нет источника. Категорий являются мощной функцией, которая позволяет расширить функциональные возможности существующих классов без подклассов
Реферировано из
http://www.g8production.com/post/37787310116/categories-in-objective-c-how-to-extend-methods
и
Difference between Category and Class Extension?
Категории и расширения позволяют расширить функциональность существующих классов без подклассов (не унаследует ничего), добавляя функциональность существующий класс, даже тот, для которого вы d o не иметь источник.
Категория позволяет добавлять (только) методы в класс, объявляя их в файле интерфейса (.h) и определяя их в файле реализации (.m), как в базовом классе Objective-C. К сожалению, категория не может объявить дополнительную переменную экземпляра для класса.
Теперь эти объявленные методы становятся частью классифицированного класса !!!
Нет ограничений на количество категорий, которые вы можете добавить к классу категорий, но каждое имя категории должно быть разным, должно объявлять и определять другой набор методов.
Редактировать
Категории
-> В Objective C, если вы хотите добавить еще некоторые функциональные возможности класса без наследования, вы просто использовать категорию для него.
-> использование Категории добавить новый метод не свойство
.
Расширение класса
-> В Objective C, если вы хотите, чтобы сделать поведение некоторых свойств частного использовать расширение класса.
-> главным образом для свойств.
Но почему категория мы можем создать наш пользовательский класс и достичь этого functionlity – user1374
Заявление «унаследовано всеми * подклассами * категориально- class "неверен, методы становятся частью класса, в котором находится категория, а не только подклассы. Таким образом, они вежливают класс для всего приложения. Категории, как правило, переоцениваются, в большинстве случаев более подходящим является метод экземпляра класса. – zaph
Спасибо за исправление. – Rajat
преимущества использования категории. , если вы используете категории, тогда не нужно помнить, какой пользовательский класс вы создали для этой конкретной функции. просто используя категории, вы можете добавить новые возможности к существующему классу &, создав объект того же класса, и вы сможете получить к нему доступ.
В одном из моих приложений я хотел изменить шрифт по умолчанию. Поэтому вместо постоянного изменения шрифта, где когда-либо был текст, я настроил категорию, изменив шрифт по умолчанию на тот, который я хотел.
- 1. Почему мы должны использовать HandleErrorAttribute?
- 2. Почему мы должны использовать EJB?
- 3. Почему мы должны использовать диспетчер зависимостей?
- 4. Почему мы не должны использовать AnyObject?
- 5. Почему мы должны использовать литералы в C#?
- 6. Почему мы должны использовать список в subprocess.Popen?
- 7. Почему мы не должны использовать ++ в javascript?
- 8. Почему мы должны использовать Invoke в .Net?
- 9. Почему мы должны выпускать?
- 10. Почему мы должны использовать спящий режим весны?
- 11. Почему мы должны использовать $() каждый метод?
- 12. Почему мы должны использовать TableModel для JTable?
- 13. Почему мы должны использовать xml-макеты?
- 14. Почему мы должны использовать свойства зависимостей?
- 15. Почему мы должны использовать @using с Html.BeginForm
- 16. Почему мы должны использовать функцию QUOTENAME?
- 17. Почему мы должны использовать ключи webapi
- 18. почему мы должны WCF
- 19. Когда мы должны использовать ListCollectionView?
- 20. Когда мы должны использовать *, &,. , ->?
- 21. Когда мы должны использовать RTLD_DEEPBIND?
- 22. Когда мы должны использовать класс, а когда мы не должны
- 23. Когда мы должны использовать оператор '===' в javascript?
- 24. SPL против массива: когда мы должны использовать SPL и когда мы должны использовать Array в PHP?
- 25. Почему мы должны очищать стек?
- 26. Должны ли мы использовать jms?
- 27. Должны ли мы использовать HashSet?
- 28. Когда мы должны использовать split() в Python?
- 29. Почему мы должны использовать статические вызовы в PHP?
- 30. Почему мы должны использовать сервисы и заводы в этой программе?
http://stackoverflow.com/a/24568948/3767017 Посмотрите на этот ответ –