Swift 2.0 中的回调函数
Callback function in Swift 2.0
我用 NSURLSession 创建了一个函数,需要生成一个回调来接收异步处理的结果。
let task = NSURLSession.sharedSession().dataTaskWithRequest(yourMutableRequest) {
data, response, error in
// do your stuff here
}
task.resume()
如何创建在这种情况下使用的回调函数?感谢您的回答。
您可以创建一个函数来处理请求和 return 一个 callback/completionHandler,如下所示:
func handler (data: NSData!, response: NSURLResponse!, error: NSError!) {
}
然后按如下方式调用:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request,
completionHandler: handler)
task.resume()
或者,如果您想要实现的是在另一个函数中使用 NSURLSession.sharedSession().dataTaskWithRequest
函数并 return 它的结果,您也可以使用闭包来实现它,如以下代码所示:
func makeRequest(request: NSURLRequest, completionHandler: (data: NSData!, response: NSURLResponse!, error: NSError!) -> ()) {
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
completionHandler(data: data, response: response, error: error)
}
}
你可以这样称呼它:
self.makeRequest(request) { data, response, error in
// do what you want here
}
希望对你有所帮助。
我用 NSURLSession 创建了一个函数,需要生成一个回调来接收异步处理的结果。
let task = NSURLSession.sharedSession().dataTaskWithRequest(yourMutableRequest) {
data, response, error in
// do your stuff here
}
task.resume()
如何创建在这种情况下使用的回调函数?感谢您的回答。
您可以创建一个函数来处理请求和 return 一个 callback/completionHandler,如下所示:
func handler (data: NSData!, response: NSURLResponse!, error: NSError!) {
}
然后按如下方式调用:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request,
completionHandler: handler)
task.resume()
或者,如果您想要实现的是在另一个函数中使用 NSURLSession.sharedSession().dataTaskWithRequest
函数并 return 它的结果,您也可以使用闭包来实现它,如以下代码所示:
func makeRequest(request: NSURLRequest, completionHandler: (data: NSData!, response: NSURLResponse!, error: NSError!) -> ()) {
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
completionHandler(data: data, response: response, error: error)
}
}
你可以这样称呼它:
self.makeRequest(request) { data, response, error in
// do what you want here
}
希望对你有所帮助。