调用自定义函数的额外参数?

时间:2017-02-11 02:50:32

标签: ios swift

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参数显然在方法定义中。为什么我有这个错误?

1 个答案:

答案 0 :(得分:2)

  

我为什么会遇到此错误

这是因为行尾的花括号:

API.sharedInstance.submitAnswer(id: card_id, quality: 0) {

该语法的含义是大括号引入了一个尾随闭包,这需要您声明submitAnswer接受第三个​​参数,这是某种功能。但你还没有。