Sou desenvolvedor Android e estou aprendendo Swfit, porem estou com uma duvida, vou fazer uma chamada para o meu servidor e ele vai retornar um JSON, ate ai esta funcionando tudo perfeito! Porem queria fazer isso em uma outra thread e deixar um loading carregando enquanto essa acao durar…
Andei pesquisando e achei algo relacionado a blocks, porem nao consegui implementar com sucesso (nao consegui deixar em uma segunda thread)
Alguem tem alguma dica, ou alguem exemplo?
Criei um exemplo para tentar adicionar o loading:
showProgress("oi")
hardProcessingWithString("", completion: completion)
func hardProcessingWithString(input: String, completion: (result: String) -> Void) {
completion(result: "we finished!")
}
func completion(name: String) {
var i = 1
while i <= 90000 {
print(i)
i = i + 1
}
}
Se você precisa receber o resultado do servidor recomendo usar o framework AFNetworking ou Alamofire, eles já te devolvem o JSON em uma chamada de block, ou seja, você não precisa se preocupar com isso, apenas mostra o loading antes da chamada e esconde ele dentro do block de completion. Exemplo:
showLoadingHUD()
//Usando AFNetworking
APIManager.sharedInstance.validateService(test, succeeded: { results -> Void in
//Chamado ao fim da solicitação no servidor
self.hideLoadingHUD()
})