我正在尝试找到一种在Swift中处理异步网络请求的方法。我的计划是在自己的课堂上隔离这些电话,因此我需要一种处理回调的方法。在Android中,我正在使用Interface
进行以下操作:
apiService.fetch(data, new Callback() {
@Override
public void onResponse(Response r) {
// success
}
@Override
public void onFailure(Error e) {
// error
}
});
有人可以将我指向我如何在Swift 3中类似地处理它的方向吗?谢谢!
可以拥有多个完成处理程序。这是一个简短的例子:
func request(url:String, success:@escaping(Any) -> Void, failure:@escaping(Any?) -> Void)
{
let task = URLSession.shared.dataTask(with: URL.init(string: url)!) { (data, response, error) in
if let responseError = error
{
failure(responseError)
}
else if let responseData = data //Make additional checks if there is an error
{
success(responseData) //Call when you are sure that there is no error
}
else
{
failure(nil)
}
}
task.resume()
}
用法的示例:
self.request(url: "https://jsonplaceholder.typicode.com/posts", success: { (data) in
//Do if success
}) { (error) in
//Do if error
}