2017-02-18 5 views
5

Es tut mir leid, wenn dies ein Duplikat ist, aber ich habe versucht, um einschließlich Apples String Format Specifiers und IEEE printf spec suchen, aber konnte nicht die Antwort für etwas so einfach finden.String Formatter für String-Konstanten in Swift?

Ich möchte os_log Nachricht mit String-Formatierer für String-Konstante drucken. So etwas wie:

printf("Currently at processing state: %s\n", "reading in"); 

in C. Allerdings, wenn ich so etwas wie dies in Swift versucht:

os_log("Currently at processing state: %s", log: .default, type: .info, "reading in") 

es einfach nichts heraus überhaupt gedruckt.

Wie drucke ich eine String-Konstante mit String-Format-Spezifizierer? Ich bin mir nicht sicher, wie man es mit NSLog entweder tut.

Edit: os_log erfordert StaticString, so kann es nicht so etwas wie "Something \(Expr) Something else" wie in print() tun. Sie können die Zeichenfolgenformatierung weiterhin verwenden, um Zahlenvariablen zu drucken. Ich frage mich, wie man in diesem Fall String-Konstanten/Variablen druckt.

Edit 2: hat Apple eigentlich Diskussion zu diesem Thema direkt auf seine manual page, das ich es vermisst geschaffen, da aber nur in der Objective-C-API-Version für jetzt diskutiert wird.

+0

"irgendwas \\ (beliebiger schneller Ausdruck) etwas anderes" –

Antwort

5

Vom os_log Manpage:

Sie auch die „% @“ Formatangabe für die Verwendung mit Obj-C verwenden/CF/Swift-Objekte

In Ihrem Fall

import os.log 

os_log("Currently at processing state: %@", log: .default, type: .info, "reading in") 

funktioniert, weil die Swift-Zeichenfolge über eine Variable-Argument-Liste mit NSString verbunden ist.

+0

Perfekt! Vielen Dank! – HuaTham

-2

Dies funktioniert:

print("Currently at processing state: \(readingin)") 

So setzen Sie den Parameter, den Sie für readingin drucken möchten.

(Wenn diese Frage gelöst Sie es bitte als Antwort markieren)

+0

Ich suche nach einer Antwort für 'os_log', die Zeichenfolgenformatbezeichner für' StaticString' benötigt, um den Wert einer Variablen auszudrucken. – HuaTham