Swift 中字符串常量的字符串格式化程序?
String Formatter for string constants in Swift?
抱歉,如果这是重复的,但我尝试四处搜索,包括 Apple 的 String Format Specifiers, and 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
,因此它不能像 print()
那样做 "Something \(Expr) Something else"
之类的事情。您仍然可以使用字符串格式来打印数字变量。我想知道在这种情况下如何打印字符串常量/变量。
编辑 2:Apple 实际上在其 manual page 上就此主题进行了讨论,我设法错过了它,因为它目前仅在 Objective-C API 版本中讨论.
这将起作用:
print("Currently at processing state: \(readingin)")
所以你把你要打印的参数读进去了
(如果这解决了您的问题,请将其标记为答案)
来自 os_log
手册页:
You may also use the "%@" format specifier for use with Obj-C/CF/Swift objects
你的情况
import os.log
os_log("Currently at processing state: %@", log: .default, type: .info, "reading in")
有效,因为 Swift 字符串桥接到 NSString
变量参数列表。
抱歉,如果这是重复的,但我尝试四处搜索,包括 Apple 的 String Format Specifiers, and 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
,因此它不能像 print()
那样做 "Something \(Expr) Something else"
之类的事情。您仍然可以使用字符串格式来打印数字变量。我想知道在这种情况下如何打印字符串常量/变量。
编辑 2:Apple 实际上在其 manual page 上就此主题进行了讨论,我设法错过了它,因为它目前仅在 Objective-C API 版本中讨论.
这将起作用:
print("Currently at processing state: \(readingin)")
所以你把你要打印的参数读进去了
(如果这解决了您的问题,请将其标记为答案)
来自 os_log
手册页:
You may also use the "%@" format specifier for use with Obj-C/CF/Swift objects
你的情况
import os.log
os_log("Currently at processing state: %@", log: .default, type: .info, "reading in")
有效,因为 Swift 字符串桥接到 NSString
变量参数列表。