字符串格式化程序,用于Swift中的字符串常量?

时间:2017-02-18 12:26:23

标签: swift string logging constants format-specifiers

很抱歉,如果这是重复的,但我尝试搜索Apple的String Format SpecifiersIEEE 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版本。

2 个答案:

答案 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)")

因此,您要将要打印的参数用于阅读。

(如果这解决了您的问题,请将其标记为答案)