如何处理cocoa中的警告未知转义序列“\040”
我在Cocoa应用程序中运行的一些应用程序描述中出现了以下警告: 我已经尝试了所有我能想到的方法来消除这个错误,比如完全重写它,从另一个没有警告的类似脚本复制和粘贴,等等。但是我无法摆脱它。谁能告诉我哪里出了问题 我使用的原始代码是:如何处理cocoa中的警告未知转义序列“\040”,cocoa,xcode,warnings,Cocoa,Xcode,Warnings,我在Cocoa应用程序中运行的一些应用程序描述中出现了以下警告: 我已经尝试了所有我能想到的方法来消除这个错误,比如完全重写它,从另一个没有警告的类似脚本复制和粘贴,等等。但是我无法摆脱它。谁能告诉我哪里出了问题 我使用的原始代码是: NSString *theCellRefScript = [NSString stringWithFormat:@"tell application \"Numbers\"\n\
NSString *theCellRefScript = [NSString stringWithFormat:@"tell application \"Numbers\"\n\
tell document 1 \n\
tell sheet \"%@\" \n\
tell table \"%@\" \n\
set value of cell \"%@\" to \%@\ \n\
end tell \n\
end tell \n\
end tell \n\
end tell ", theSheet, theTable, theCell, [theDistributionValues objectAtIndex:k]];
在最后一个反斜杠之后的一行末尾有一个尾随空格。它认为你在试图逃离一个空间,而不是加入队伍
编辑:我甚至会告诉你我是怎么知道的,这样下次你就知道了。从错误文本中,“040”是一个八进制数。转换为十进制,4*8=32,ASCII 32=空格。空格不是有效的转义字符。一些编辑器有一个“显示空白”模式,它将显示选项卡和空格,以帮助消除此类问题。在最后一个反斜杠后的一行末尾有一个尾随空格。它认为你在试图逃离一个空间,而不是加入队伍
编辑:我甚至会告诉你我是怎么知道的,这样下次你就知道了。从错误文本中,“040”是一个八进制数。转换为十进制,4*8=32,ASCII 32=空格。空格不是有效的转义字符。一些编辑器有一个“显示空白”模式,它将向您显示选项卡和空格,以帮助消除此类问题。发现问题,在单元格起始设置值的行上有一个非法空格。工作版本为:
set value of cell \"%@\" to \%@\\n\
发现问题时,有一个游荡空间上的行起始单元格设置值。工作版本为:
set value of cell \"%@\" to \%@\\n\
首先不要对这种问题敞开心扉 Objective-C与所有现代C编译器一样,如果字符串文本由空格分隔,则会自动连接起来。使用以下命令,而不是带有尾随斜杠的多行命令:
NSString *theCellRefScript = [NSString stringWithFormat:@"tell application \"Numbers\"\n"
"tell document 1\n"
"tell sheet \"%@\ \n"
"tell table \"%@\ \n"
"set value of cell \"%@\" to \%@ \n"
"end tell\n"
"end tell\n"
"end tell\n"
"end tell", theSheet, theTable, theCell, [theDistributionValues objectAtIndex:k]];
首先不要对这种问题敞开心扉 Objective-C与所有现代C编译器一样,如果字符串文本由空格分隔,则会自动连接起来。使用以下命令,而不是带有尾随斜杠的多行命令:
NSString *theCellRefScript = [NSString stringWithFormat:@"tell application \"Numbers\"\n"
"tell document 1\n"
"tell sheet \"%@\ \n"
"tell table \"%@\ \n"
"set value of cell \"%@\" to \%@ \n"
"end tell\n"
"end tell\n"
"end tell\n"
"end tell", theSheet, theTable, theCell, [theDistributionValues objectAtIndex:k]];
这让我发疯,因为我真的看不见。在我的例子中,它变得相当简单:在我的帮助文本中,我写了一个特定的选项将跳过所有空格-我举了一个例子
"\ "
当然,这变成了:
"\"\ \""
这在视觉上一点也不明显。。。但是中间的反斜杠也需要被逃脱:
"\"\\ \""
HTH这让我发疯,因为我真的看不见它。在我的例子中,它变得相当简单:在我的帮助文本中,我写了一个特定的选项将跳过所有空格-我举了一个例子
"\ "
当然,这变成了:
"\"\ \""
这在视觉上一点也不明显。。。但是中间的反斜杠也需要被逃脱:
"\"\\ \""
HTHGraham,我已经检查了每一行,没有尾随空格。问题实际上发生在一条直线的中间,而不是在末端。我认为这是一个线端,因为错误显示在线端附近。不管怎样,很高兴你明白了!格雷厄姆,我已经检查了每一行,没有尾随空格。问题实际上发生在一条直线的中间,而不是在末端。我认为这是一个线端,因为错误显示在线端附近。不管怎样,很高兴你明白了!这些空白问题几乎是看不见的。