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

Hua*_*ham 9 string logging constants format-specifiers swift

很抱歉,如果这是重复的,但我尝试搜索包括Apple的字符串格式说明符IEEE printf规范,但找不到这个简单的答案的答案.

我想打印带字符串格式化程序的os_log消息,用于字符串常量.类似于:

printf("Currently at processing state: %s\n", "reading in");
Run Code Online (Sandbox Code Playgroud)

在C.但是,当我在Swift中尝试这样的事情时:

os_log("Currently at processing state: %s", log: .default, type: .info, "reading in")
Run Code Online (Sandbox Code Playgroud)

它根本没有印刷任何东西.

如何使用字符串格式说明符打印字符串常量?我不知道如何做到这一点NSLog.

编辑:os_log需要StaticString,所以它不能这样做"Something \(Expr) Something else"print().您仍然可以使用字符串格式来打印数字变量.我想知道在这种情况下如何打印字符串常量/变量.

编辑2:Apple实际上已经在其手册页面上讨论了这个主题,我设法错过了它,但它现在只在Objective-C API版本中讨论过.

Mar*_*n R 12

os_log手册页:

您也可以使用"%@"格式说明符与Obj-C/CF/Swift对象一起使用

在你的情况下

import os.log

os_log("Currently at processing state: %@", log: .default, type: .info, "reading in")
Run Code Online (Sandbox Code Playgroud)

因为Swift字符串桥接到NSString变量参数列表上,所以可以正常工作.