NSString* name = @"abc";
NSLog(name,nil);
谁能告诉我,为什么加一个零?
非常感谢你。
答案 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);
也可以。