2017-02-15 8 views
0

を返すことができません。これは、エラーを与える:「クロージャをエスケープすることだけINOUTキャプチャすることができます...」私はそれを修正するにはどうすればよいAlamofire 4、スウィフト3:のStatusCode

を?

func check_info(tag: String, info: String, code: inout Int) { 

    Alamofire.request(
     URL + "/api/test_information/", 
     method: .post, 
     parameters: [tag: info], 
     encoding: JSONEncoding.default 
    ).responseString { response in 
     code = (response.response?.statusCode)! 
    } 

} 

答えて

0

編集:ステータスコードを返す場合は、このコールバック関数を使用します。コールバックでは、応答を受け取ったらすぐにステータスコードを返します。

func check_info(tag: String, info: String, statusCode: @escaping (String)->Void){ 
Alamofire.request(URL + "/api/test_information/", method: .post, parameters: [tag: info], encoding: JSONEncoding.default).responseJSON { response in 
      statusCode((response.response?.statusCode)!) 
     } 
    } 

そして、それを呼び出すために、使用:あなたの答えのための

check_info(tag: "yourtag", info: "yourInfo){ 
    statusCode in 
     print(statusCode) 
    } 
+0

ありがとう!しかし、私は別の関数でこの値を使う必要があります。 –

+0

@MarkYankovskyこのコールバック関数が動作するはずです。それを自分でテストしていませんでしたが、それは私が使用する方法です –

+0

ありがとう、しかし、私はこのfuncをどのように呼び出すことができますか? @escapingは一度も使用していませんか? –

関連する問題