2016-06-23 10 views
1

ich folgende Funktion haben:NSLog ist nicht verfügbar

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

Wich Ergebnis in dem folgenden Fehler: 'NSLog' wurde markiert ausdrücklich nicht verfügbar hier (Foundation.NSLog)

In der Dokumentation ist es ausdrücklich aufgelistet als verfügbar. Was vermisse ich?

Antwort

4

Ähnlich wie in C können Sie eine variable Argumentliste nicht direkt an eine andere Funktion übergeben. Sie haben eine CVaListPointer (das Swift Äquivalent va_list) zu schaffen, und dass übergeben an die NSLogv Variante: (. Swift-3-Code)

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