Etwas Ähnliches könnte, was Sie suchen:
extension Request {
public func debugLog() -> Self {
#if DEBUG
debugPrint(self)
#endif
return self
}
}
Verbrauch:
Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
.debugLog()
.response {…}
Wenn Sie alle Antworten ausdrucken möchten, Sie könnten Ihre eigene Antwortverfahren, ähnlich dem schreiben responseObject() Methode am Anfang der Übung:
http://www.raywenderlich.com/87595/intermediate-alamofire-tutorial
[Update:. Unten pro Antrag von @trauzti hinzugefügt]
Hier ist, wie könnte man die responseObject() Ansatz, um auf jede Anfrage Ausgabe drucken tun.
Vorbehalt: Ich habe diesen Code nicht persönlich getestet und würde wahrscheinlich verschiedene Entscheidungen in der Produktion treffen. Dies zeigt einfach, wie der Wenderlich-Tutorial-Code Debug-Logging enthalten kann. Beachten Sie auch: Da das Tutorial vor-Swift 2.0 ist, habe ich das alte println() anstelle von print() verwendet.
@objc public protocol ResponseObjectSerializable {
init(response: NSHTTPURLResponse, representation: AnyObject)
}
extension Alamofire.Request {
public func responseObject<T: ResponseObjectSerializable>(completionHandler: (NSURLRequest, NSHTTPURLResponse?, T?, NSError?) -> Void) -> Self {
let serializer: Serializer = { (request, response, data) in
#if DEBUG
println("Request: \(request.URL)")
#endif
let JSONSerializer = Request.JSONResponseSerializer(options: .AllowFragments)
let (JSON: AnyObject?, serializationError) = JSONSerializer(request, response, data)
if response != nil && JSON != nil {
#if DEBUG
println("Response:")
debugPrint(JSON)
#endif
return (T(response: response!, representation: JSON!), nil)
} else {
#if DEBUG
println("Failed Serialization:")
debugPrint(serializationError)
#endif
return (nil, serializationError)
}
}
return response(serializer: serializer, completionHandler: { (request, response, object, error) in
completionHandler(request, response, object as? T, error)
})
}
}
Awesome, thanks! Können Sie den Code, den Sie für die ResponseObject-Erweiterung im Hinterkopf haben, veröffentlichen? – trauzti
Btw der Code wird nicht mit Alamofire 3 funktionieren :) –
Habe keine Zeit, um dies jetzt zu überprüfen, @MatthieuRiegler. Möchten Sie eine v3-kompatible Writup bereitstellen? :) – clozach