【问题标题】:swift2: Extra argument 'error' in callswift2:调用中的额外参数“错误”
【发布时间】: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 的回答并考虑到函数抛出
  • 相关栏目,有很多很多类似的问题和解决方法。

标签: swift2 nsurlconnection nserror


【解决方案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)
      

      【讨论】:

      • 我已经尝试捕获但无法解决此问题。
      • ??你现在有什么错误?我看到你自己的“答案”,那里缺少做部分(可能只是错字?)
      猜你喜欢
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2018-01-02
      相关资源
      最近更新 更多