当我在字符串中插入换行符时,Xcode会抛出各种错误。例如,这失败了:
if (newMaximumNumberOfSides > 12) {
NSLog(@"Invalid maximum number of sides: %i is greater than
the maximum of 12 allowed.", newMaximumNumberOfSides);
}
但这有效:
if (newMaximumNumberOfSides > 12) {
NSLog(@"Invalid maximum number of sides: %i is greater than the maximum of 12 allowed.",
newMaximumNumberOfSides);
}
我更喜欢前者,因为它看起来更清晰(较短的线条),但代码断了。处理这个问题的最佳方法是什么? (子问题:这是在任何语法指南中引用的吗?我搜索了所有书籍的“换行符”都没有效果。)
答案 0 :(得分:8)
if (newMaximumNumberOfSides > 12) {
NSLog(@"Invalid maximum number of sides: %i is greater than "
"the maximum of 12 allowed.", newMaximumNumberOfSides);
}
答案 1 :(得分:8)
所有这些都应该有效:
NSString *s = @"this" \
@" is a" \
@" very long" \
@" string!";
NSLog(s);
NSString *s1 = @"this"
@" is a"
@" very long"
@" string!";
NSLog(s1);
NSString *s2 = @"this"
" is a"
" very long"
" string!";
NSLog(s2);
NSString *s3 = @"this\
is a\
very long\
string!";
NSLog(s3);
答案 2 :(得分:2)
C中的字符串文字可能不包含换行符。引用http://gcc.gnu.org/onlinedocs/cpp/Tokenization.html:
没有字符串文字可以延伸过 一行结束。较旧版本的GCC 接受多行字符串常量。 你可以改用续行, 或字符串常量连接
已经给出的其他答案给出了连续行和字符串连接的示例。