在API
内部我有一个单例对象,其方法名为submitAnswer
(见打击),
func submitAnswer(id: Int, quality: Int) {
Alamofire.request(
"\(API_ENDPOINT)/cards?next=true",
method: .post,
parameters: answerParams(id: id, quality: quality),
headers: requestHeaders()
).responseJSON { response in
switch response.result {
case .success(let JSON):
let response = JSON as! NSDictionary
print(response)
case .failure(let error):
print(error)
}
}
}
当我尝试在控制器中调用此方法时,我在调用错误中得到了额外的“质量”参数。
@IBAction func correctBtnPressed(_ sender: Any) {
let card_id = card!["data"]["id"].intValue
API.sharedInstance.submitAnswer(id: card_id, quality: 0) {
API.sharedInstance.nextCard() { card in
self.card = card
self.updateContent()
}
}
}
quality
参数显然在方法定义中。为什么我有这个错误?
答案 0 :(得分:2)
我为什么会遇到此错误
这是因为行尾的花括号:
API.sharedInstance.submitAnswer(id: card_id, quality: 0) {
该语法的含义是大括号引入了一个尾随闭包,这需要您声明submitAnswer
接受第三个参数,这是某种功能。但你还没有。