我有以下功能:
func myNSLog(_ givenFormat: String, _ args: CVarArg..., _ function:String = #function) {
let format = "\(function): \(givenFormat)"
NSLog(format, args)
导致以下错误: 'NSLog'已明确标记为不可用(Foundation.NSLog)
在文档中,它明确列为可用。我错过了什么?
答案 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代码。)