Vídeo: iOS 12 Shortcuts App: Creating Advanced Siri Shortcuts! 2024
Por Neal Goldstein
Quando você fala sobre a programação da nuvem do iOS, você está falando de duas coisas: iCloud (que é implementado para você pela Apple e permite que você sincronizar dados entre dispositivos) e serviços da web (que permitem que alguns de seus aplicativos sejam processados por um computador remoto em algum lugar no meio de quem sabe onde). Os serviços da Web dependem de maneiras eficientes de entregar solicitações de serviço da web - solicitações feitas por um usuário para dados armazenados na nuvem. Os dois formatos mais eficientes (por agora, pelo menos) são XML e JSON. As dicas que você encontrará aqui mostram como configurar uma solicitação da web (usando o serviço da Web do Google Geocoder como exemplo) e como analisar a resposta XML e a resposta JSON para que você possa usar os dados do serviço da Web em sua aplicação.
Analisando dados retornados da nuvem por um serviço da Web
Quando você usa um serviço da Web baseado na nuvem, sua resposta provavelmente estará em JSON ou XML, dois formatos padrão para transmissão dados entre um servidor e uma aplicação web. Haverá momentos em que você tiver uma escolha entre os dois formatos, mas outras vezes você tem que ir com o que você obtém.
O Google Geocoding Web Service, por exemplo, oferece uma escolha.
Se você quiser a resposta em formato XML, você usaria
// mapas. googleapis. com / maps / api / geocode / xml
Se você quisesse a resposta no JSON, você usaria
// maps. googleapis. com / maps / api / geocode / json? paremters
Embora semelhante na intenção, como você obtém informações fora das estruturas de dados XML e JSON é bastante diferente na execução.
Analisando uma Resposta XML da Nuvem
Quando você usa um serviço da Web baseado na nuvem, sua resposta pode estar em XML. Se, ao trabalhar com seu serviço da Web baseado em nuvem, você deve inserir o seguinte em seu navegador
// mapas. googleapis. com / maps / api / geocode / xml? sensor = true & address = EmpireState Building &
você retornaria algum XML - isto, por exemplo:
… 40. 7484395 -73. 9856709 …
Como o XML não se expressa exatamente de maneiras que são fáceis de entender, você teria que analisar o que é que o XML lhe dá.
Lembre-se de XML é constituído por elementos que possuem tags de início e fim. Para obter as informações através do iCloud, você usa a classe NSXMLParser que usa o padrão de delegação. Veja como isso funcionaria:
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: data]; [xmlParser setDelegate: self]; [xmlParser parse];
Acontece que existem quatro métodos delegados NSXMLParser que você estará implementando para analisar uma estrutura de dados XML: