2015-10-28 4 views
11

を指定されました:コンテキストタイプは1つの引数を期待しますが、4が、私はXcodeの7にアップグレードし、私はAPIコールを管理するためにAlamofireを使用していますが、私はこのエラーを取得しています

「閉鎖引数リストのコンテキストタイプが期待します1つの引数が、図4に示すように、次のコードについては「

を指定した:

static func loginWithEmail(email: String, password: String, response: (token: String?) ->()) { 
    let urlString = baseURL + ResourcePath.login.description 
    let parameters = [ 
     "email": email, 
     "password": password 
    ] 
    Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in 
     let json = JSON(data!) 
     let token = json["token"].string 
     response(token: token) 
    } 
} 

誤差は次の行を参照している:

Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in 

私は即時閉鎖に新しく、値を有効にするために値をネストする必要があるかどうかわかりません。

大変助かります。

+1

あなたは([Alamofire 3.0への移行ガイド]を見ていましたhttps://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%203.0%20Migration%:最終的なコードは次のようになります20Guide.md)、特に「Breaking API Changes」のセクションを参照してください。 –

答えて

9

クロージャでは、レスポンス< AnyObject、NSError>の1つのパラメータが使用されるため、コードはこのようになります。

Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { response in 
    let json = JSON(response.data!) 
    let token = json["token"].string 
    response(token: token) 
} 
+0

Chris Gulleyさん、ありがとうございました。これが私の問題を解決しました。 –

+0

完了ハンドラはどうですか? – user805981

2

助けてくれてありがとう、これが私の最初の時間はここに求めていたし、それが役に立つと励ましました。

static func loginWithEmail(email: String, password: String, func_response: (token: String?) ->()) { 
    let urlString = baseURL + ResourcePath.login.description 
    let parameters = [ 
     "email": email, 
     "password": password 
    ] 
    Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { response in 
     if response.result.isSuccess { 
      let json = JSON(response.result.value!) 
      let token = json["token"].string 
      func_response(token: token) 
     } 
    } 
関連する問題