Разбить длинную форматированную NSString на несколько строк
Учитывая следующую строку кода Objective-C:
[NSString stringWithFormat:@"\n Elapsed Time \n Battery Level: \n Torque: \n Energy Used \n Energy Regenerated:\n Cadence: \n Battery Temp: \n Motor Temp: \n Incline: \n Speed MPH: \n Speed KPH:\n Avg Speed MPH: \n Avg Speed KPH:\n Distance Miles:\n Distance Km: \n Time Date Stamp:\n"];
В Xcode или любом редакторе кода можно избежать очень длинной строки, которую нужно прочитать, прокручивая ее в редакторе?
Есть ли способ разбить его на несколько строк? Я нахожу, что если я попытаюсь это сделать, код не будет компилироваться, потому что компилятор достигнет конца строки и не видит закрывающий кавычек ("
) для строки.
Кто-нибудь знает об этом?
Ответы
Ответ 1
Да, есть. Смежные строки будут конкатенированы для вас компилятором.
NSString *info = [NSString stringWithFormat:@"\n Elapsed Time \n"
"Battery Level: \n"
"Torque: \n"
"Energy Used \n"
"Energy Regenerated:\n Cadence: \n"
"Battery Temp: \n"
"Motor Temp: \n"
"Incline: \n Speed MPH: \n"
"Speed KPH:\n"
"Avg Speed MPH: %f \n"
"Avg Speed KPH:\n"
"Distance Miles:\n"
"Distance Km: \n"
"Time Date Stamp:\n"];
NSLog(info);
Ответ 2
Это более интересная функция, чем полезный ответ, но...
// your code goes with that indentation (1 tab = 4 spaces)
NSString *myString = @"first line\
second line\
third line\
...\
last line";
// next lines of codes
Но вам действительно нужно иметь в виду отступ, делая NSLog(@"%@", myString)
для выше, приведет к: first linesecond linethird line...last line
.
Теперь рассмотрим этот пример:
// your code goes with that indentation (1 tab = 4 spaces)
NSString *myString = @"first line\
second line\
third line\
...\
last line";
// next lines of codes
это даст: first lineXsecond lineXthird lineX...Xlast line"
, где эти неприятные X будут заменены на 4 пробела (табулятор имел 4 пробела в этом случае, и я не мог получить правильное форматирование, извините). Таким образом, дополнительный интервал может действительно помешать вам получить ожидаемые результаты.