【问题标题】:Compiler error for network call syntax Xcode网络调用语法 Xcode 的编译器错误
【发布时间】:2021-04-20 17:41:45
【问题描述】:

我无法弄清楚代码有什么问题。请帮忙。该应用程序可以使用 Xcode 归档而不会出现任何错误,但不能使用第三方平台。谢谢。

使用第三方平台编译时的错误

❌ /Users/App/APICall.swift:636:132:一行上的连续语句必须用';'分隔APIManager.request.loadUser(名称:名称, 代码:代码){(userId,成功)成功(“(userId)”)}失败:{ (error, errorStr) in failure(error,errorStr) } ^

❌ /Users/App/APICall.swift:636:140:一行连续的语句 必须用';'分隔 APIManager.request.loadUser(名称:名称, 代码:代码){(userId,成功)成功(“(userId)”)}失败:{ (error, errorStr) in failure(error,errorStr) } ^

❌ /Users/App/APICall.swift:636:140:预期表达式 APIManager.request.loadUser(name: name, code: code) { (userId, 成功)成功(“(userId)”)}失败:{(错误,errorStr)在 失败(错误,errorStr)} ^

❌ /Users/App/APICall.swift:636:77:参数缺少参数 通话中的“成功”
APIManager.request.loadUser(名称:名称,代码:代码) { (userId, success) in success("(userId)") } failure: { (error, errorStr) 失败(error,errorStr) } ^

❌ /Users/App/APICall.swift:636:133:表达式解析为未使用的 功能
APIManager.request.loadUser(名称:名称,代码:代码){ (userId, success) in success("(userId)") } failure: { (error, errorStr) 失败(error,errorStr) } ^

❌ /Users/App/APICall.swift:636:142: 闭包表达式未使用 APIManager.request.loadUser(name: name, code: code) { (userId, 成功)成功(“(userId)”)}失败:{(错误,errorStr)在 失败(错误,errorStr) } ^~~~~~~

func updateUser(name: String, code: String, success: @escaping ((_ userCode: String) -> Void), failure: @escaping ((_ error: APIManager.UpdateError, _ errorMessage: String) -> Void)) {
        APIManager.request(url, method: .post, parameters: parameters)
                    .responseJSON { response in
                        switch response.result {
                        case .success(let data):
                            let json : [String: JSON] = JSON(data).dictionaryValue
                            
                            if (json["status"] == "success") {
                               APIManager.request.loadUser(name: name, code: code) { (userId, success) in
                                    success("\(userId)")
                                } failure: { (error, errorStr) in
                                    failure(error,errorStr) }
                            } else  {
                                failure(APIManager.UpdateError(rawValue: json["error"]!.intValue)!, json["error_message"]!.stringValue)
                            }
                        case .failure(_):
                               print("Call failed.")
                            }
                        }
                    }
    }

【问题讨论】:

  • 缺少逗号:} failure: { => }, failure: {。至少评论一下那个电话。如果你评论APIManager.request.loadUser(name: name的整个代码,你的代码能编译吗?如果是,请开始重写它,让自动完成功能帮助您。
  • 嗨,当我添加逗号时,Xcode 给了我错误“在范围内找不到'错误'。
  • 我会评论所有的方法调用(至少 func updateUser(...){ /*...*/ } 里面有什么,然后我会用自动完成帮助我逐个重写每个调用。

标签: swift xcode compiler-errors


【解决方案1】:

您正在尝试使用 Swift 5.3 语言功能。见

https://www.biteinteractive.com/swift-5-3-and-trailing-closures/

问题是您没有使用 Swift 5.3。你需要更新你的 Xcode(或者“第三方平台”需要更新它的 Swift 编译器)。

【讨论】:

  • 您好,感谢您的回答。我跑了/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc --versionSwift version is 5.3.2。我使用的 Xcode 是 12.4。这是否意味着第三方平台需要更新他们的编译器?
  • 你有点隐瞒关键信息,即这个“第三方平台”是什么。但是,是的,如果他们没有使用 Swift 5.3,就会出现这个错误。
  • 谢谢!我花了一段时间才找到设置版本的位置。它之前设置为 Xcode 11.2。现在好了!!谢谢!!
猜你喜欢
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
相关资源
最近更新 更多