NSLog不可用

时间:2016-06-23 13:54:16

标签: swift nslog

我有以下功能:

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

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

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

1 个答案:

答案 0 :(得分: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) }
}

(Swift 3代码。)