如何将 NSString 传递给调用 printf 的函数?
Posted
技术标签:
【中文标题】如何将 NSString 传递给调用 printf 的函数?【英文标题】:How to pass an NSString to a function that calls printf? 【发布时间】:2016-06-19 02:47:11 【问题描述】:我正在尝试将 NSString 和 args 列表传递给 printf,但编译器对 NSString 不是常量感到不满
我想要一个这样的功能:
+ (void)logFormat:(NSString *)format logArguments:(va_list)args
printf(format,args);
有没有办法标记参数 NSString 以使我正在尝试做的事情“安全”?
编辑:我尝试将参数声明为 const NSString * 但这也不起作用。
【问题讨论】:
试试printf(format.UTF8String, args);
。
@Avi 如果格式字符串中包含 '%@' 序列,则会失败。
这不是因为printf()
的限制吗?换句话说,这不是与 OP 的方法无关的问题吗?
【参考方案1】:
您需要使用NSString
的stringWithFormat:arguments:
创建一个完全格式化的NSString
对象,然后通过printf
写入该对象的内容。
由于它已完全格式化,您不妨直接通过fwrite()
将其转储到stdout
或使用NSFileHandle
。
【讨论】:
以上是关于如何将 NSString 传递给调用 printf 的函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将字符串转换为 NSData 以将其传递给 BLE 设备?