很抱歉,如果这是重复的,但我尝试搜索Apple的String Format Specifiers和IEEE printf spec,但找不到这么简单的答案。
我想用字符串格式化程序打印os_log消息,用于字符串常量。类似于:
printf("Currently at processing state: %s\n", "reading in");
C中的然而,当我在Swift中尝试过类似的东西时:
os_log("Currently at processing state: %s", log: .default, type: .info, "reading in")
它完全没有打印出任何东西。
如何使用字符串格式说明符打印字符串常量?我不确定如何使用NSLog
。
修改:os_log
需要StaticString
,因此无法像"Something \(Expr) Something else"
中那样执行print()
之类的操作。您仍然可以使用字符串格式来打印数字变量。我想知道在这种情况下如何打印字符串常量/变量。
编辑2:Apple实际上正在manual page对这个主题进行讨论,我设法错过了它,但是现在只讨论Objective-C API版本。
答案 0 :(得分:9)
来自os_log
手册页:
您也可以使用"%@"用于Obj-C / CF / Swift对象的格式说明符
在你的情况下
import os.log
os_log("Currently at processing state: %@", log: .default, type: .info, "reading in")
有效,因为Swift字符串桥接到NSString
上
变量参数列表。
答案 1 :(得分:-3)
这将有效:
print("Currently at processing state: \(readingin)")
因此,您要将要打印的参数用于阅读。
(如果这解决了您的问题,请将其标记为答案)