当我尝试使用 NSLog 时:
NSLog(@"one" @"two" @"three");
这有效并在控制台中打印 onetwothree。但是当我尝试这样使用时
NSString *s = [NSString stringWithFormat:@"three"];
NSLog(@"one" @"two" s);
以上不起作用,我收到一个编译时错误“预期的')'”。我不知道该怎么做。
有什么帮助吗?
附言我正在尝试使用 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);
它给了我同样的错误“预期')'”
最佳答案
如果要打印 NSString
中 NSLog
变量的内容,则需要将其视为格式化字符串。
所以而不是:NSLog(@"one" @"two" s);
用:NSLog(@"one" @"two" @"%@", s);
附加:
您必须在宏的末尾插入逗号和 val
。它应该看起来像:#define LOG_X(val) NSLog(@"xx" @"yy" @"%@" @"zz", val)
。
关于ios - 如何将 NSString 放入带有多个参数的 NSLog 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16879296/