不能将类型'(NSURLResponse!,NSData!,NSError!) - Void'的值转换为预期的参数类型'(NSURLResponse?,NSData?,NSError?) - >虚空”

时间:2016-04-21 04:47:42

标签: swift2

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

  

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

我怀疑我需要使用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
}

1 个答案:

答案 0 :(得分:5)

您的封闭签名必须与

期望的签名相匹配
NSURLConnection.sendAsynchronousRequest()

将其定义为错误消息建议:

completionHandler: {(response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in ...