swift2:调用中的额外参数“错误”

Posted

技术标签:

【中文标题】swift2:调用中的额外参数“错误”【英文标题】:swift2: Extra argument 'error' in call 【发布时间】:2016-02-29 06:40:27 【问题描述】:

xCode:调用中的额外参数“错误”。

这是错误代码

var responseError: NSError?
var response: NSURLResponse?

let urlData: NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &responseError)

如何帮助我解决此错误。谢谢你。 我找到了更多信息,但它的错误很难修复。

【问题讨论】:

在 swift2 中删除错误参数并使用 do/try/catch 模式 对不起,你能帮我做个例子吗? 查看 Pradeep 的回答并考虑到函数抛出 相关栏目,有很多很多类似的问题和解决方法。 【参考方案1】:

如果您删除错误参数,它仍然会给出错误,请查找以下内容。

调用可以抛出,但它没有用'try'标记,并且没有错误 处理。

因此建议您可以使用新的NSURLSession,正如@Pradeep 所说,它在ios 9 中已被弃用。

请查看以下示例如何使用NSURLSession

    let url = NSURL(string: YOUR_URL)
    let request = NSURLRequest(URL: url!, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 5.0)

    let session = NSURLSession.sharedSession()

    let task = session.dataTaskWithRequest(request, completionHandler: (data, response, error) in
        print(data)
        print(response)
        print(error)
    )
    task.resume()

希望它对你有用。

【讨论】:

【参考方案2】:

您可以通过删除错误参数来修复它。

NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)

但建议使用NSURLSession's dataTaskWithRequest,因为上述调用在 iOS 9 中已弃用

【讨论】:

【参考方案3】:

请参阅 Pradeep 的回答。如果你还想用它..

do 
    let urlData = try NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)
 catch 
    // in case the function throws an error


// or 

let urlData = try? NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)

【讨论】:

我已经尝试捕获但无法解决此问题。 ??你现在有什么错误?我看到你自己的“答案”,那里缺少做部分(可能只是错字?)

以上是关于swift2:调用中的额外参数“错误”的主要内容,如果未能解决你的问题,请参考以下文章

cal中的额外参数错误[重复]

MKPolygon 初始化错误“调用中的参数“interiorPolygons”缺少参数”/“调用中的额外参数”

SwiftUI:随机“调用中的额外参数”错误

Alamofire发布请求错误调用中的额外参数“方法”

Alamofire 请求收到错误“调用中的额外参数”

session.dataTask 调用错误中的 Swift5 额外参数“completionHandler”