#iphone #objective-c #cocoa #nsstring
#iPhone #objective-c #cocoa #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. Эй, ты пропустил передачу значения с плавающей точкой %f @ end. Средняя скорость миль/ ч: % f n Средняя скорость км/ ч: n……………. Даже этот способ сработал для меня
Ответ №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);
Комментарии:
1. Убедитесь, что вы добавляете
@
перед всеми строками, заключенными в кавычки2. @XJones Он скомпилирован и напечатан только с 1 @ в начале строки в соответствии с ответом @Joe.
3. @Seamus код был протестирован и работал в соответствии с опубликованным, и его не нужно было редактировать. Это работает с @ в каждой строке или без него, если @ находится в первой строке. Смотрите пример здесь cocoadev.com/index.pl?NSString
4. Я просто привык добавлять
@
во все строки, но да, я вижу, что это работает и без этого. 1 для @Joe.5. Это работает в консоли, но не в sectionIndexTitle для tableview
Ответ №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"
, где эти неприятные крестики были бы заменены на 4 пробела (в табуляторе в этом случае было 4 пробела, и я не смог получить правильное форматирование, извините). Таким образом, дополнительный интервал действительно может помешать вам получить ожидаемые результаты.