当前位置: 首页 > 面试题库 >

闭包参数列表的上下文类型需要1个参数,但指定了4个

冯风史
2023-03-14
问题内容

我已升级到Xcode 7,并且使用Alamofire来管理API调用,但出现此错误:

‘闭包参数列表的上下文类型需要1个参数,但指定了4个参数’

对于以下代码:

 static func loginWithEmail(email: String, password: String, response: (token: String?) -> ()) {
    let urlString = baseURL + ResourcePath.login.description
    let parameters = [
        "email": email,
        "password": password
    ]
    Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in
        let json = JSON(data!)
        let token = json["token"].string
        response(token: token)
    }
}

错误是指以下行:

  Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in

我是Swift闭包的新手,不知道是否必须嵌套值才能使其有效。

非常感谢您的帮助。


问题答案:

该闭包采用类型为Response 的单个参数,因此您的代码应更像这样。

Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { response in
    let json = JSON(response.data!)
    let token = json["token"].string
    response(token: token)
}


 类似资料:
  • 我有一个非常奇怪的问题,很简单,但我不明白问题是什么。 我有一个类,ClassA调用ClassB中的函数,比如- 类A是在我的applicationContext中定义的bean。类xml ClassB中的函数定义看起来像 IntelliJ没有指出任何语法问题,一切看起来都很正常。。。然而,当我试图编译时,Maven出现了一个异常 B类与a类位于不同的模块中,因此B类位于a类的pom中。作为依赖项

  • 我尝试了上述命令的各种组合,但结果总是上面给出的错误消息。为什么会发生这样的事情--因为我是按照文档所说的去做的?

  • 我试图从特定的Dockerfile构建镜像,并同时标记它;我遵循的在线说明,但我得到以下错误: “docker build”只需要1个参数 这是我运行的命令: 我尝试了上述命令的各种组合,但结果总是上面给出的错误消息。为什么会发生这种情况——因为我在遵循留档所说的?

  • 当尝试ViewChild时,我会得到错误。错误为“未提供'opts'的参数。” @ViewChild都给出了错误。 ts(11,2):错误TS2554:应为2个参数,但得到1。

  • 我尝试了几种解决方案,但我无法让它们中的任何一个发挥作用。 这是我的代码:

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我收到以下错误 警告:mysqli_error()恰好需要1个参数,给定0 问题在于这行代码: 整个代码是 包含的文件具有以下行 问题答案: mysqli_er