2017-02-11 78 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接受第三个参数是某种功能。但你没有。