2017-02-15 31 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

謝謝,但我怎麼稱呼這個功能?我從未使用過@escaping? –