网络调用语法的编译器错误 Xcode
Compiler error for network call syntax Xcode
我想不通代码有什么问题。请帮忙。该应用程序可以使用 Xcode 存档而不会出现任何错误,但不能使用第三方平台。谢谢。
第三方平台编译报错
❌ /Users/App/APICall.swift:636:132: consecutive statements on a line must be separated by ';' APIManager.request.loadUser(name: name,
code: code) { (userId, success) in success("(userId)") } failure: {
(error, errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:140: consecutive statements on a line
must be separated by ';'
APIManager.request.loadUser(name: name,
code: code) { (userId, success) in success("(userId)") } failure: {
(error, errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:140: expected expression
APIManager.request.loadUser(name: name, code: code) { (userId,
success) in success("(userId)") } failure: { (error, errorStr) in
failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:77: missing argument for parameter
'success' in call
APIManager.request.loadUser(name: name, code: code)
{ (userId, success) in success("(userId)") } failure: { (error,
errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:133: expression resolves to an unused
function
APIManager.request.loadUser(name: name, code: code) {
(userId, success) in success("(userId)") } failure: { (error,
errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:142: closure expression is unused
APIManager.request.loadUser(name: name, code: code) { (userId,
success) in success("(userId)") } failure: { (error, errorStr) in
failure(error,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.")
}
}
}
}
您正在尝试使用 Swift 5.3 语言功能。见
https://www.biteinteractive.com/swift-5-3-and-trailing-closures/
问题是您没有使用 Swift 5.3。您需要更新 Xcode(或者“第三方平台”需要更新其 Swift 编译器)。
我想不通代码有什么问题。请帮忙。该应用程序可以使用 Xcode 存档而不会出现任何错误,但不能使用第三方平台。谢谢。
第三方平台编译报错
❌ /Users/App/APICall.swift:636:132: consecutive statements on a line must be separated by ';' APIManager.request.loadUser(name: name, code: code) { (userId, success) in success("(userId)") } failure: { (error, errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:140: consecutive statements on a line must be separated by ';' APIManager.request.loadUser(name: name, code: code) { (userId, success) in success("(userId)") } failure: { (error, errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:140: expected expression APIManager.request.loadUser(name: name, code: code) { (userId, success) in success("(userId)") } failure: { (error, errorStr) in failure(error,errorStr) } ^
❌ /Users/App/APICall.swift:636:77: missing argument for parameter 'success' in call
APIManager.request.loadUser(name: name, code: code) { (userId, success) in success("(userId)") } failure: { (error, errorStr) in failure(error,errorStr) } ^❌ /Users/App/APICall.swift:636:133: expression resolves to an unused function
APIManager.request.loadUser(name: name, code: code) { (userId, success) in success("(userId)") } failure: { (error, errorStr) in failure(error,errorStr) } ^❌ /Users/App/APICall.swift:636:142: closure expression is unused APIManager.request.loadUser(name: name, code: code) { (userId, success) in success("(userId)") } failure: { (error, errorStr) in failure(error,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.")
}
}
}
}
您正在尝试使用 Swift 5.3 语言功能。见
https://www.biteinteractive.com/swift-5-3-and-trailing-closures/
问题是您没有使用 Swift 5.3。您需要更新 Xcode(或者“第三方平台”需要更新其 Swift 编译器)。