Hintergrund: In Objective-C, würde ich meine Behauptung erstellen mit Debug-Informationen enthalten:Swift assert ohnehin Variablen in Zeichenfolge drucken
NSAssert(poetCount > 5, "Expected poetCount > 5; Actual: %d", poetCount);
jedoch die globale assert
Funktion in Swift scheint nicht um dies zu ermöglichen, da der Nachrichtenparameter ein StaticString ist. So kann ich dies nicht tun:
assert(NSFileManager.defaultManager().fileExistsAtPath(fullpath),
"Expected: File to Exist @ \(fullpath)")
Frage: Gibt es eine Alternative assert
Funktion, die keine statische Zeichenfolge erfordert, oder sollte ich weiterhin mit NSAssert
wenn ich in zusätzliche Informationen setzen wollen erleichtern das Debuggen ?
Was passiert, wenn Sie den "Erwartete ......" Teil mit einem String-Objekten ersetzen? Entschuldigung, unter Windows kann nicht getestet werden. –
@LordZsolt Wenn ich schreibe 'let assertString =" Expect: sectionIndex> 0; Tatsächliche \ (sectionIndex) "; assert (sectionIndex> 0, assertString) 'Ich erhalte diesen Fehler:" Konnte keine Überladung für 'assert' finden, die die angegebenen Argumente akzeptiert " – Tobias
Ich weiß nicht, wann Apple dies geändert hat, aber die Assert kann nun String-Interpolation verarbeiten. – Tobias