swift - Swift 2.0 中的回调函数

标签 swift callback asynccallback

我使用 NSURLSession 创建了一个函数,需要生成一个回调来接收异步过程的结果。

let task = NSURLSession.sharedSession().dataTaskWithRequest(yourMutableRequest) { 
    data, response, error in
    // do your stuff here
}
task.resume()

如何创建在这种情况下使用的回调函数?感谢您的回答。

最佳答案

您可以创建一个函数来处理请求并返回回调/completionHandler,如下所示:

func handler (data: NSData!, response: NSURLResponse!, error: NSError!) {

}

然后按如下方式调用:

let task = NSURLSession.sharedSession().dataTaskWithRequest(request, 
                                                            completionHandler: handler) 

task.resume()

或者,如果您想要实现的是使用 NSURLSession.sharedSession().dataTaskWithRequest在另一个函数中调用函数并返回其结果,您也可以使用闭包来实现它,如以下代码所示:

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
}

希望这对您有帮助。

关于swift - Swift 2.0 中的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262588/

相关文章:

ios - 保存到现有的 Parse.com 对象

swift - 格式化字符串后出现意外结果

.net - 如何使用 NetTcpBinding 通过 WCF 获得可靠的回调

node.js - npm请求模块--返回一个值

ios - iPhone X 上的警报通过 UIAlertController 弹出窗口显示不同的颜色

c++ - 如何使 AddCallback() 更安全 - 对象中不同事件的函数

jquery - Twitter 的推文按钮有回调吗?

wso2 - SOAPHeader 中缺少 ReplyTo 属性

java - 在回调外部更新变量

ios - 使用callkit接听电话后如何打开in Call UI