我正在尝试从 catch 块记录错误。文件说明如下:
要格式化日志消息,请使用标准 NSString 或 printf 格式字符串
除了标准格式字符串说明符(例如 %@ 和 %d)之外,日志记录系统还通过以 %{value_type}d 格式内联表示值类型来支持值的自定义解码。此外,说明符 %.*P 可用于解码任意二进制数据。该系统包括许多内置的值类型解码器,如表 3 所示。
errno %{errno}d 管道破裂
当我这样做时,我收到一个错误:
import os.log
do {
try throwError()
} catch {
os_log("Error: %{errno}d", log: .default, type: .error, error)
}
Run Code Online (Sandbox Code Playgroud)
但是编译器输出错误:
参数类型“错误”不符合预期类型“CVarArg”
有没有比error.localizedDescription作为参数传递更好的方法?
使用@代替d并将错误转换为字符串
os_log("Error: %@", log: .default, type: .error, String(describing: error))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1891 次 |
| 最近记录: |