2017-02-11 54 views
0

裏面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參數明顯在方法定義的內部。爲什麼我有這個錯誤?

回答

2

爲什麼會出現這個錯誤

這是因爲在生產線末端的大括號的:

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

該語法的含義是,大括號引入了尾部閉合,這將要求您已聲明submitAnswer接受第三個參數是某種功能。但你沒有。