无法将类型 URL.Type 的值转换为预期的参数类型 'URL'
Cannot convert value of type URL.Type to expected argument type 'URL'
我不明白这里出了什么问题,
// 现在实际向服务器发送请求。
NSURLConnection.sendAsynchronousRequest(request as? URLRequest ?? URLRequest(url: URL), queue: OperationQueue.main, completionHandler: {(_ response: URLResponse, _ data: Data, _ connectionError: Error?) -> Void in
var resultText: String? = nil
if connectionError != nil {
resultText = "** ERROR = \(connectionError)"
print("**Error \(unsuccessLabel.text)")
uploadPleaseWaitLabel.hidden = true
//****** 12-17
unsuccessLabel.hidden = false
//****** 12-17
sessionUploadedYorN = "N"
self.useDocument()
}
else {
看看这一行:
request as? URLRequest ?? URLRequest(url: URL)
您正在尝试使用参数 URL
创建一个 URLRequest
。只需传递真正的 URL
实例,而不是类型 URL
.
可能的解决方案:
let actualRequest = request as? URLRequest ?? URLRequest(url: URL(string:"http://www.google.com")!)
NSURLConnection.sendAsynchronousRequest(actualRequest,
queue: OperationQueue.main,
completionHandler:
{ (_ response: URLResponse, _ data: Data, _ connectionError: Error?) -> Void in
var resultText: String? = nil
if connectionError != nil {
resultText = "** ERROR = \(connectionError)"
print("**Error \(unsuccessLabel.text)")
uploadPleaseWaitLabel.hidden = true
//****** 12-17
unsuccessLabel.hidden = false
//****** 12-17
sessionUploadedYorN = "N"
self.useDocument()
}
更新
从 Swift4 开始,即使使用该修复程序也无法编译您的代码(闭包中存在签名问题)。不仅如此,NSURLConnection
自 iOS9 以来已被弃用,不鼓励使用。
您应该重构您的代码以与 Swift-native URLSession
及其 dataTask
实例方法一起使用。它的作用几乎相同。
我不明白这里出了什么问题,
// 现在实际向服务器发送请求。
NSURLConnection.sendAsynchronousRequest(request as? URLRequest ?? URLRequest(url: URL), queue: OperationQueue.main, completionHandler: {(_ response: URLResponse, _ data: Data, _ connectionError: Error?) -> Void in
var resultText: String? = nil
if connectionError != nil {
resultText = "** ERROR = \(connectionError)"
print("**Error \(unsuccessLabel.text)")
uploadPleaseWaitLabel.hidden = true
//****** 12-17
unsuccessLabel.hidden = false
//****** 12-17
sessionUploadedYorN = "N"
self.useDocument()
}
else {
看看这一行:
request as? URLRequest ?? URLRequest(url: URL)
您正在尝试使用参数 URL
创建一个 URLRequest
。只需传递真正的 URL
实例,而不是类型 URL
.
可能的解决方案:
let actualRequest = request as? URLRequest ?? URLRequest(url: URL(string:"http://www.google.com")!)
NSURLConnection.sendAsynchronousRequest(actualRequest,
queue: OperationQueue.main,
completionHandler:
{ (_ response: URLResponse, _ data: Data, _ connectionError: Error?) -> Void in
var resultText: String? = nil
if connectionError != nil {
resultText = "** ERROR = \(connectionError)"
print("**Error \(unsuccessLabel.text)")
uploadPleaseWaitLabel.hidden = true
//****** 12-17
unsuccessLabel.hidden = false
//****** 12-17
sessionUploadedYorN = "N"
self.useDocument()
}
更新
从 Swift4 开始,即使使用该修复程序也无法编译您的代码(闭包中存在签名问题)。不仅如此,NSURLConnection
自 iOS9 以来已被弃用,不鼓励使用。
您应该重构您的代码以与 Swift-native URLSession
及其 dataTask
实例方法一起使用。它的作用几乎相同。