2017-02-15 2 views
0

Это дает ошибку: «Экранирование затворы могут только захватить INOUT ...»Alamofire 4, Swift 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? –

Смежные вопросы