Первое, что я делаю, когда включаю сторонний код в свое приложение, - это переформатирую его в соответствии с моими личными предпочтениями в кодировании:
// Single line comments only
// I never put spaces inside my parenthesis
-(void)myOCDMethod
{
// If an if or for statement has only one instruction, I don't use brackets
if (this)
[self that];
else
[self somethingElse];
// If I do have to use brackets, they go on their own lines so that they line up
if (this)
{
[self that];
[self andThat];
}
// I always put the pointer asterisk next to the instance name
NSObject *variable = [[NSObject alloc] init];
// I always put spaces around operators
if (i == 0)
x = 2;
}
Какой формат кодирования OCD вы используете?
Почему компилятор не может выполнить эту оптимизацию самостоятельно? Кажется банальным ...
(Тот же вопрос относится к A? B: C;)





Я делаю много этого, но с некоторыми отличиями:
Я всегда вставляю пробелы перед скобками и после них:
-(void)myOCDMethod -> - (void) myOCDMethod
Я оставляю фигурные скобки на той же строке:
if (this)
{
//code
}
becomes
if (this) {
//code
}
Если я чувствую себя особенно ОКР, я выстраиваю своих местных жителей:
float l1;
NSArray *array;
ReallyLongClassName *object;
И, наконец, ТАБЛИЦЫ, а не ПРОБЕЛЫ.
Если я этого не сделаю, день не удастся. Если не считать выстраивания в очередь местных, это просто безумное излишество.
Нет! Лучше всего выстроить в очередь местных и даже иваров! ;)
Практически то же самое, что и ваш, хотя я оставляю пробел между «-» или «+» и открывающей круглой скобкой возвращаемого типа. О, и я использую (условие)? (значение1): (значение2) много, в основном для присваиваний и математики ... Я знаю, что это затрудняет чтение кода, но экономит три строки ввода.
Кроме того, у него меньше накладных расходов (хотя я не знаю, заметно ли это).
Вкладки - зло в середине строки, а пробелы качаются! Пример:
int n;
double d;
Пусть размер табуляции будет 4. Я выделю их точками:
. . .
int n; // two tabs here
double d; // one tab here
Если этот код открыть на компьютере другого разработчика, где размер вкладки равен 2, он увидит следующее изображение:
. . . . .
int n;
double d;
Итак, вы должны либо использовать тот же размер табуляции (и это все равно не сработает, поскольку ваш код может быть повторно использован кем угодно в мире - вы не можете заставить всех), либо придерживаться пробелов. Попался?
Я нахожусь на
NSString* aString;
лагерь, а не
NSString *aString;
(Для переменных и аргументов)
Обоснование состоит в том, что в первом случае, похоже, говорится, что «aString - это указатель NSString», тогда как последний больше читается как «(разыменованный) * aString является объектом NSString». Особенно в Obj-C, где все объекты распределены в куче и, следовательно, на них ссылаются указатели, первый кажется менее запутанным.
Я выравниваю фигурные скобки только для определений функций, определений методов и блоков ivar, потому что это области действия первого уровня в файле (все, что находится за пределами, является глобальным) и в противном случае кажется «протекающим». Выровненный, блок более различим, без «дырок».
В сигнатурах методов я использую такой интервал:
- (void) methodName:(Class*) object;
Мне нравится выравнивать двоеточия по вертикали, когда есть более двух аргументов (если первый тег параметра не намного длиннее, чем имя метода, когда он ломается). Xcode прекрасно выполняет автоматические вкладки для этого.
Все остальное как у тебя.
Вы можете прокомментировать, почему конкретный стиль кодирования (по сути, дело вкуса) заслуживает отрицательной оценки.
Я полагаю, что отказ от скобок также составляет более простую инструкцию. Не должно быть заметно в повседневной жизни, но всегда приятно знать, что вы помогаете. Почему однострочные комментарии?