NSLog不可用

Hel*_*ker 2 nslog swift

我有以下功能:

func myNSLog(_ givenFormat: String, _ args: CVarArg..., _ function:String = #function) {
        let format = "\(function): \(givenFormat)"
        NSLog(format, args)
Run Code Online (Sandbox Code Playgroud)

导致以下错误:'NSLog'已明确标记为不可用(Foundation.NSLog)

在文档中,它明确列为可用.我错过了什么?

Mar*_*n R 6

与C类似,您不能将变量参数列表直接传递给另一个函数.你必须创建一个CVaListPointer(Swift等价物va_list)并将其传递给NSLogv变体:

func myNSLog(_ givenFormat: String, _ args: CVarArg..., _ function:String = #function) {
    let format = "\(function): \(givenFormat)"
    withVaList(args) { NSLogv(format, $0) }
}
Run Code Online (Sandbox Code Playgroud)

(Swift 3代码.)