Документация, ссылки и сгенерированный код 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? Если нет, какой стиль вы предпочитаете и почему?