我试图将NSString和args列表传递给printf,但编译器对NSString不是常量
感到不满意我希望有这样的功能:
+ (void)logFormat:(NSString *)format logArguments:(va_list)args {
printf(format,args);
}
有没有办法以这样的方式标记参数NSString,使其成为我想要做的事情"安全"?
编辑:我尝试将参数声明为const NSString *,但这也不起作用。
答案 0 :(得分:1)
您需要使用NSString
的{{1}}来创建完全格式化的stringWithFormat:arguments:
对象,然后通过NSString
写出该内容。
由于它是完全格式化的,您也可以直接通过printf
将其直接转储到stdout
或使用fwrite()
。