当前位置: 首页 > 知识库问答 >
问题:

Swift 1.2 到 swift 2:无法将类型的值转换为预期的参数类型

黎同
2023-03-14

我正在尝试根据我在线找到的教程创建NSURLSession任务(https://www.raywenderlich.com/85528/user-accounts-ios-ruby-rails-swift#next_section),并且我收到以下错误:

无法转换类型为(NSData!,NSURLResponse!,NSError!) -

在这段代码中:

let task = session.dataTaskWithRequest(request) { (data: NSData!, response: NSURLResponse!, error: NSError!) in

问题所属的职能部门可在此处找到

func sendRequest(request: NSURLRequest, completion:(NSData!, NSError!) -> Void) -> () {
// Create a NSURLSession task
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) { (data: NSData!, response: NSURLResponse!, error: NSError!) in
  if error != nil {
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
      completion(data, error)
    })

    return
  }

  dispatch_async(dispatch_get_main_queue(), { () -> Void in
    if let httpResponse = response as? NSHTTPURLResponse {
      if httpResponse.statusCode == 200 {
        completion(data, nil)
      } else {
        var jsonerror:NSError?
        if let errorDict = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error:&jsonerror) as? NSDictionary {
          let responseError : NSError = NSError(domain: "HTTPHelperError", code: httpResponse.statusCode, userInfo: errorDict as? [NSObject : AnyObject])
          completion(data, responseError)
        }
      }
    }
  })
}

完整的代码块可以在这里(https://codeshare.io/uJPcX)的第68行找到。

共有1个答案

松旻
2023-03-14

改变

< code >数据:NSData!,回应:NSURLResponse!,错误:NSError!

数据: NSData?, 响应: NSURL响应?, 错误: NS错误?

当使用< code>data或< code>response等时,您可能需要将is写成< code>data!来展开变量,但是要小心,因为如果变量是< code>nil它将崩溃,所以您必须首先检查它不是nil

 类似资料:
  • 我不知道如何将类型的值转换为预期的参数类型,用于在以下代码中: 如何为编写

  • 我正在保存所有数据,代码写在单独的类中。它显示了一个错误,即无法将类型为“Int”的值转换为预期的参数类型“字符串”。请帮我解决这个问题。 以下是我保存所有数据的类: 这是ViewController.swift文件: 遇到错误: 无法将“Int”类型的值转换为预期的参数类型“String”

  • 我是斯威夫特的新人,现在尽我所能地学习这个。我写了得到参数的函数:数字和函数,它们与这个数字一起工作: 但是编译给出错误。当我试图改变论点时,比如

  • 问题内容: 我通过以下方式添加: 现在,我在中的关键字上收到以下错误消息: 我在所有其他功能中都使用了该功能,但从未遇到此错误 问题答案: 更改为。 我不确定编译器到底在想什么(或者它的疯狂错误消息来自何处),但是我的猜测是: 在Swift中,必须先初始化变量,然后才能使用。造成这种情况的一个原因是,编译器无法验证不会尝试调用其获得的所有内容,或执行其他操作,例如访问将在之后初始化的其他变量,这取

  • 在总体方案中,我试图比较用户从tableview中的多个选择,并将它们与我的解析数据库进行比较。所以我的问题是两倍1。我当前的代码是正确的方式吗?和2。如何将值类型Bool转换为参数类型pfobject? 无法将类型“()->bool”的值转换为预期的参数类型“pfobject” 让imagesQuery=PFQuery(classname:“CollegeImages”)imagesQuery.

  • 我是SwiftUI的新来者。现在我需要使用@绑定var电影:与列表页面绑定的编辑视图中的电影,但是当我将其应用于下面的代码时,错误刚刚发生。 无法将“Binding”类型的值转换为预期的参数类型“Int” 那我该怎么处理这个案子,期待你的帮助。 顺便问一下,我如何在“progress”中使用绑定类型,如:它还报告Err,无法将类型“Int”的值转换为预期的参数类型“Binding” 我有另一个问题