无法转换类型的值'(NSURLResponse!,NSData!,NSError!) - Void'到预期的参数类型'(NSURLResponse?,NSData?,NSError?) - > Void'

Nic*_*ick 1 swift2

我正在尝试在Swift 2.2中处理完成的URL请求并检查错误,但是从completionHandler:{(response: NSURLResponse...下面的代码开始的行是抛出错误:

无法将类型'(NSURLREsponse!,NSData!,NSError!) - Void'的值转换为预期的参数类型'(NSURLResponse?,NSData?,NSError?) - > Void'.

我怀疑我需要使用do-try-catch但是我不确定是否有更简单的方法.

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(),
    completionHandler: {
        (response: NSURLResponse!, data: NSData!, error: NSError!) - > Void in
        if error == nil {
            var image = UIImage(data: data)

            dispatch_async(dispatch_get_main_queue(), {
                cell.selfieImgView.image = image
            })
        } else {
            print("Error: \(error.localizedDescription)")
        }
    })

return cell
}
Run Code Online (Sandbox Code Playgroud)

Ras*_*sen 5

您的关闭签名必须与期望的签名相匹配

NSURLConnection.sendAsynchronousRequest()
Run Code Online (Sandbox Code Playgroud)

像错误消息建议一样定义它:

completionHandler: {(response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in ...
Run Code Online (Sandbox Code Playgroud)