当我尝试使用NSLog
登录时,我遇到了这个错误:
这是我的代码:
if fileManager.fileExists(atPath: (drop.config["servers", "default", "KeyURL"]?.string ?? "default")) {
NSLog("FILE AVAILABLE", "TESTNOTI")
} else {
NSLog("FILE NOT AVAILABLE", "TESTNOTI")
}
为什么会发生这种情况,我该如何解决?
最佳答案
NSLog
将格式字符串作为第一个参数,其后是
由参数列表代替占位符
以格式字符串(比较String Format Specifiers)。
在Apple平台上,可以使用String
格式打印%@
:
let fileName = "the file"
NSLog("File not found: %@", fileName)
但是,这不适用于Linux平台(例如Vapor)。
在这里,您必须将Swift字符串转换为C字符串才能通过
将其作为NSLog的参数(并对C字符串使用
%s
格式):let fileName = "the file"
fileName.withCString {
NSLog("File not found: %s", $0)
}
关于swift - '字符串'不符合预期的 'CVarArg'类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42670593/