Objective-C Префиксы класса
Какое у вас предпочтение с именами классов ObjC? Я немного сомневаюсь в том, что было бы самым разумным подходом к этому, поэтому было бы неплохо услышать другие мнения.
Apple рекомендует использовать префикс cocoa, потому что ObjC не поддерживает пространства имен. Google ObjC styleguide (для которого я в основном нацелен) устраняет их, если вы не расширяете (категорию, расширение класса и т.д.) NSClass.
Мое предпочтение было бы не в префиксных классах, потому что я также считаю это пустой тратой писем и не способствует возникновению причины. Он должен использоваться только в коде рамки, чтобы сигнализировать, что этот класс принадлежит ему, а не вашим классам приложений, но я бы не использовал его на уровне приложения.
Что вы, а главное ПОЧЕМУ?
Мое заключение (не стесняйтесь добавлять комментарии для получения наиболее обоснованного решения)
Классы уровня приложений:
- Я решил пойти с 1 префиксом письма (например, CMyClass). Основные причины для целей организации файлов (например, лучше группировать в Finder), и он по-прежнему использует меньше букв имени класса, чем префиксы длиной 2 или более.
- Используйте префикс C для классов cocoa (например,
CAudioController.h
)
- Используйте префикс ' U' для коллекций утилит (обычный C, например
USystemAudio.h
)
Классы уровня уровня:
- Префиксные классы с 2 или более пользовательскими буквами, предпочтительно уникальными, так как, вероятно, будут доступны другим приложениям.
Категория
- Категории называются следующим образом:
NSClassName+ExtensionPurpose
Ответы
Ответ 1
Моим общим подходом является префикс имен классов, которые являются частью фреймворка или загружаемого пакета, т.е. классов, которые могут быть разделены между несколькими приложениями и другими фреймворками, но не беспокоить классы, которые появляются как часть автономного приложения.
Если Стив Джобс дал мне одно желание, у него должно было быть пространство имен в Objective-C 3.0 (которое будет доступно завтра).
Ответ 2
Существует очень хороший ориентир Скотт Стивенсон о том, как выглядит код objective-C. Оформить следующие ссылки.
http://cocoadevcentral.com/articles/000082.php
http://cocoadevcentral.com/articles/000083.php
Эти ссылки также ответят на ваш вопрос, как вы должны назвать свои классы и почему.
Ответ 3
Я использую префикс, даже в коде приложения, который не будет разделяться - в основном для последовательного. Обычно я использую двухбуквенную аббревиатуру для имени приложения или фрейма, в котором был создан код, если другой префикс (например, 3 буквы или короткое описательное слово) имеет больше смысла.
Ответ 4
вы обязательно должны их префикс. если есть столкновение, поведение undefined.
что на самом деле происходит (последний раз я столкнулся с этим) заключается в том, что бинарный файл загружен, но ваш класс не загружен, если другой класс (objc) с этим именем уже загружен. я дам вам понять, какую реализацию вы получите при создании экземпляра этого класса;) такое столкновение, вероятно, приведет к сбою или большому количеству проглатываемых исключений (и нефункциональному приложению). многие разработчики используют 2 заглавных буквы, что (при прочих равных условиях) 26 * 26 вероятность того, что они будут использовать один и тот же префикс. снова - это случилось со мной soooo.... лучше, чтобы вы сделали это, чтобы не переписывать много кода позже.