2017-01-23 7 views
0

Я пытаюсь создать приложение, в котором я буду использовать Alamofire, чтобы сделать запрос к некоторому API-интерфейсу третьей стороны. Одно из моих текстовых полей должно показать значение, которое я получаю от ответа.Как приостановить приложение до загрузки json-данных с помощью Alamofire?

У меня есть функция, которая принимает ответ от JSON, а затем возвращает значение, которое должно отображаться в моем текстовом поле. Как я могу отложить функцию текстового поля, пока я не получу свое значение из ответа.

И я могу показать монитор прогресс бар или деятельности в то время как данные загружаются только, чтобы убедиться, что пользователь не думает, что приложение не делает ничего? (Во время апи вызывается и функция выполняется)

+0

использовать прогрессбар до тех пор, пока вы не обновите текстовое поле –

+0

, вы можете скрыть текстовое поле и показать его, когда оно станет доступным. – muescha

+0

взгляните на https://github.com/jdg/MBProgressHUD – raki

ответ

0

у вас есть несколько вариантов:

  1. использовать индикатор активности, как предложено в комментариях к вашему вопросу.
  2. Используйте обработчик завершения для вызова

    функ getTextFieldData (URL: String, завершение: (String) -> Пустота) { Alamofire.request (.POST, "http://someurl.com/gettextFieldData", параметры: [ "queryValue" : имя_пользователь,], кодирование: .JSON) .responseJSON { запроса, ответ, в результате переключателя результата { случая .Success (пусть JSON): пусть fieldValue = строка (данные: JSON.dataUsingEncoding (NSUTF8StringEncoding)! , кодирование: NSUTF8StringEncoding)! завершение (fieldValue)

      case .Failure(let data, _): 
           if let errorData = data, fieldValue = String(data: errorData, encoding: NSUTF8StringEncoding) { 
            completion(fieldValue) 
           } 
          } 
        } 
    } 
    

    Вы можете обновить значение в обработчике завершения

  3. Извлекает значение текстового поля до Вашего текущего вида.

  4. Используйте значение по умолчанию и обновите его, когда ваш вызов API возвращает данные.
+0

Может ли кто-нибудь отредактировать этот ответ и правильно отформатировать код? Я много пробовал, но не могу сделать это хорошо. Заранее спасибо. – SagarU

+0

Большое спасибо за это. –