Ios 如何使用多个参数将NSString放入NSLog

Ios 如何使用多个参数将NSString放入NSLog,ios,objective-c,macos,nslog,Ios,Objective C,Macos,Nslog,当我尝试使用NSLog时,如: NSLog(@"one" @"two" @"three"); 这在控制台中工作并打印三个。但是当我试着这样使用 NSString *s = [NSString stringWithFormat:@"three"]; NSLog(@"one" @"two" s); 上述方法不起作用,我得到了一个编译时错误“Expected')”。我不知道该怎么办 有什么帮助吗 另外,我正在尝试使用XcodeColors,我必须像上面那样为NSLog提供参数。所以不要回答这个

当我尝试使用NSLog时,如:

NSLog(@"one" @"two" @"three");
这在控制台中工作并打印三个。但是当我试着这样使用

NSString *s = [NSString stringWithFormat:@"three"];  
NSLog(@"one" @"two" s);
上述方法不起作用,我得到了一个编译时错误“Expected')”。我不知道该怎么办

有什么帮助吗

另外,我正在尝试使用XcodeColors,我必须像上面那样为NSLog提供参数。所以不要回答这个问题,像下面那样使用它。我知道这很管用。但我必须像上面那样将参数传递给NSLog

NSString *s = [NSString stringWithFormat:@"%@ %@ %@", @"one", @"two", @"three"];  
NSLog(s, nil);
编辑

我可以像这样使用NSLog来获得我想要的结果:

NSString *s = @"ss";
NSLog(@"one" @"two" @"%@",s);
这引出了我的另一个问题。我想为NSLog制作一个宏。宏看起来像:

LOG_X(val) NSLog(@"xx" @"yy" @"%@",val @"zz")
现在,当以下各项起作用时:

LOG_X(@"one")
LOG_X(@"one" @"two" @"three")
但下面的方法行不通

NSString *s = @"one two three";
LOG_X(s);

它给了我相同的错误“Expected')”

如果要打印
NSLog
NSString
变量的内容,需要将其视为格式化字符串

因此,不是:

NSLog(@“一个”@“两个”)

使用:

NSLog(@“一”@“两”@“%@”,s)

添加:

必须在宏的末尾插入逗号和
val
。它应该是这样的:


#define LOG_X(val)NSLog(@“xx”@“yy”@“%@”@“zz”,val)

您不能使用变量:它使用字符串文本的原因是,当您编写多个由空格分隔的文本时,编译器会将它们组合成一个字符串文本

您拥有的解决方案(使用三个%@说明符的格式字符串)是一个很好的解决方案。
您也可以用类似的方式格式化这三个值。

thanx作为答案。这就引出了我的另一个问题。请阅读我的编辑。为什么不将日志定义为:
#定义日志(val)NSLog(@“xxyy%@zz”,val)
?我不明白需要所有单独的文本。第二个错误在哪里?我在日志中遇到错误。在最后一个字符串中只能使用@“%@”。不在两者之间,这就是我得到错误的原因。NSLog(@“x”@“%@“,@“xx”@“xx”)不起作用