iOS的快速日志记录>;=8带有os_日志和NSLog
我想使用iOS的快速日志记录>;=8带有os_日志和NSLog,ios,swift,logging,nslog,Ios,Swift,Logging,Nslog,我想使用os\u log(可用于iOS>=10.0)和NSLog编写自己的日志函数 我已经编写了以下代码: static func LogDebug(log: StaticString) { if #available(iOS 10.0, *) { os_log(log, type: .debug) } else { NSLog(log) } } 但是现在我得到一个例外,StaticString不能转换为普通字符串。你知道怎么解决这个问题
os\u log
(可用于iOS>=10.0)和NSLog
编写自己的日志函数
我已经编写了以下代码:
static func LogDebug(log: StaticString) {
if #available(iOS 10.0, *) {
os_log(log, type: .debug)
} else {
NSLog(log)
}
}
但是现在我得到一个例外,StaticString不能转换为普通字符串。你知道怎么解决这个问题吗?像这样试试
static func LogDebug(log: StaticString) {
if #available(iOS 10.0, *) {
os_log(log, type: .debug)
} else {
NSLog(String(describing: log))
}
}
像这样试试
static func LogDebug(log: StaticString) {
if #available(iOS 10.0, *) {
os_log(log, type: .debug)
} else {
NSLog(String(describing: log))
}
}
os_log()
和NSLog()
的第一个参数都是格式字符串,包含
(以%
开头),由以下变量参数列表展开
要记录任意字符串,请使用%@
格式,后跟
一串否则,如果字符串包含%
字符,则可能会崩溃或产生错误的输出:
func LogDebug(log: String) {
if #available(iOS 10.0, macOS 10.12, *) {
os_log("%@", type: .debug, log)
} else {
NSLog("%@", log)
}
}
os_log()
和NSLog()
的第一个参数都是格式字符串,包含
(以%
开头),由以下变量参数列表展开
要记录任意字符串,请使用%@
格式,后跟
一串否则,如果字符串包含%
字符,则可能会崩溃或产生错误的输出:
func LogDebug(log: String) {
if #available(iOS 10.0, macOS 10.12, *) {
os_log("%@", type: .debug, log)
} else {
NSLog("%@", log)
}
}
如果这样做,则会出现以下编译错误:
无法将“String”类型的值转换为预期的参数类型“StaticString”
,这意味着您在调用此函数时正在传递StaticString
。否,它不会。我还没有调用此函数-这是一个编译错误。如果我尝试调用此函数,会出现以下错误:'stringValue'不可用:请使用'String(\u:)'初始值设定项
如果执行此操作,则会出现以下编译错误:无法将'String'类型的值转换为预期的参数类型'StaticString'
,这意味着您在调用此函数时正在传递StaticString
。否,则不会。我还没有调用此函数-这是一个编译错误。如果我尝试调用此函数,则会出现以下错误:“stringValue”不可用:使用“String(:)”初始值设定项