Im Gerät testen Sie derzeit meinen Alamofire-Code. Ich versuche, eine wiederverwendbare Methode zu erstellen, die ich in einem Statuscode und einer Methode weitergeben kann, die als Parameter aufgerufen werden müssen. Ich dachte daran, einen Block zu verwenden, aber die Syntax entgeht mir und es hilft mir nicht, dass ich mit Swift angefangen habe. Hier ein Beispiel:Funktion als Parameter einfügen
func parseJsonResponse(response: Response <AnyObject, NSErrror>){
//parsing
}
func test_networkRequest(withStatusCode statusCode: Int, /* parse function as parameter */) {
stub(isHost("https://httpbin.org")) { _ in
return OHHTTPStubsResponse(fileAtPath:OHPathForFile("wsresponse.json", self.dynamicType)!,
statusCode:statusCode, headers:["Content-Type":"application/json"])
})
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
.responseJSON { response in
print(response.request) // original URL request
print(response.response) // URL response
print(response.data) // server data
print(response.result) // result of response serialization
XCTAsertNotNil(response)
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
//method should go here
self.parseJsonResponse(response)
}
}
Ich möchte in der Lage zu machen ‚test_networkRequest‘ wiederverwendbar in allen meinen Klassen, und es werden verschiedene Arten von json sein analysiert und auf verschiedene Weise behandelt werden. Deshalb würde ich gerne eine Funktion als Parameter in 'test_networkRequest' übergeben können.
Ich hoffe, mein Endziel ist klar, und ich bin offen für Vorschläge, wenn ich von der Spur bin. :)