使用NSLog打印变量,为什么添加一个零?

时间:2011-12-22 13:31:46

标签: ios nslog

NSString* name = @"abc";

NSLog(name,nil);
谁能告诉我,为什么加一个零? 非常感谢你。

3 个答案:

答案 0 :(得分:2)

NSLog的签名是void NSLog (NSString *format, ...);

所以第一个参数是格式而不是文字字符串。第二个(以及所有后续)参数是格式字符串的替换值。

您不应将格式字符串替换为要记录的字符串。如果您的字符串包含%d NSLog之类的格式说明符,则会尝试替换它们,但由于您没有输入替换值,因此无法执行此操作。

如果要记录NSLog(@"%@", string),则应始终使用string进行记录。

答案 1 :(得分:1)

使用NSString打印NSLog的正确方法是NSLog(@"%@", name);

答案 2 :(得分:0)

这根本不是必需的,但是NSLog期望一个const NSString:

NSLog(@"%@", name);

但是,只要没有%p%d%s%@等特殊标志,

NSLog(myString);

也可以。