Objective-C настройки вкладки и стиль пробелов
Документация, ссылки и сгенерированный код Apple Objective-C кажутся совершенно несовместимыми с их стилем кодирования. Я не могу определить "предпочтительный" стиль (если он существует) для Objective-C и Cocoa исходного кода.
Вот что я натолкнулся до сих пор.
Настройки вкладки
Значение по умолчанию для Xcode установлено на вкладки. Однако созданные проекты всегда создаются с 4 пробелами независимо от настроек вашей вкладки. Хуже того, в некотором сгенерированном коде есть зависающие вкладки. Приведенные примеры кода также меняются от проекта к проекту.
Интервал определения метода
В коде примера Apple различные стили определения метода даже варьируются в пределах одного файла. Но наиболее распространенный стиль интервала, по-видимому, включает пробел между -
или +
и пробелы только между аргументами добавления. Этот стиль также используется в справочной библиотеке Xcode, которая заставляет меня думать, что это предпочтительный стиль.
- (IBAction)reloadData:(id)sender;
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
Несогласованные варианты:
- (IBAction) reloadData:(id)sender;
- (IBAction)reloadData:(id) sender;
-(IBAction)reloadData:(id)sender;
- (IBAction) reloadData: (id)sender;
- (id)tableView: (NSTableView *)aTableView objectValueForTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex
Стиль фиксации
Еще одна вещь, которая является непоследовательной, - стиль скобки. Есть два популярных стиля:
Откройте скобу в своей строке:
@interface Foo : NSObject
{
}
- (id)init
{
}
Откройте скобку в той же строке, что и объявление метода:
@interface Foo : NSObject {
}
- (id)init {
}
Вопрос
Есть ли рекомендованный стиль кодировки для Objective-C от Apple? Если нет, какой стиль вы предпочитаете и почему?
Ответы
Ответ 1
Я обнаружил, что постоянно настраивал сгенерированные проекты на свой собственный предпочтительный стиль, поэтому я редактировал файлы шаблонов по своим предпочтениям (вкладки для отступа, фигурные скобки на отдельной строке). Файлы находятся здесь:
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/
Я выбираю все, избавляюсь от всех отступов с помощью cmd- [(столько раз, сколько требуется документу), и делает Edit- > Format- > re-indent. Я подключился к shift-cmd- [для удобства.
Я видел различия в стиле, например, код и шаблоны проектов, и предположил, что это связано с возрастом разных файлов. Я думаю, у них были разные внутренние правила кодирования, которые изменились.
Здесь руководство по Google Obj-C:
http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml
и еще один хороший из CocoaDevCentral:
http://www.cocoadevcentral.com/articles/000082.php
если вы действительно хотите следовать правилам Apple, руководство по программированию Objective C содержит кучу примеров кода для принятия правил.
https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/