Existe uma maneira fácil de trabalhar com serviços web para iPhone dev?

StackOverflow https://stackoverflow.com/questions/400299

  •  03-07-2019
  •  | 
  •  

Pergunta

Queremos levar dados XML e convertê-lo em um objeto NSDictionary, mas nós não queremos manualmente iterate sobre o XML. Existe uma maneira fácil de fazer isso? Como você está fazendo serviços web para o seu iPhone app?

Foi útil?

Solução

Se você tem controle sobre a saída XML você pode tentar criar uma lista de propriedades que você pode então ler em um dicionário usando -dictionaryWithContentsOfURL: (embora a melhor maneira assíncrona seria a de obter os dados usando um NSURLConnection e, em seguida, converter os dados usando o método -propertyList em NSString). Você pode encontrar mais sobre listas de propriedades aqui: http: // developer .apple.com / documentation / Cacau / conceituais / PropertyLists / Introdução / chapter_1_section_1.html

Claro que a melhor solução é usar um cliente RESTful e usar uma combinação de NSURLConnection para obter / enviar os dados e as classes TouchXML ( http://code.google.com/p/touchcode/wiki/TouchXML ) para analisar os dados, embora isso exigiria mais trabalho para colocar os dados em um dicionário. Claro, se estes vão ser os principais objetos de dados em seu sistema que você realmente deseja ser usando uma classe personalizada ou SQLite para armazenar os dados, pois fornece muito mais confiabilidade em testar seu aplicativo de um dicionário.

Outras dicas

Se você pode controlar a saída do servidor, tente usar plists. Caso contrário, você está preso com análise de XML (ou JSON se o servidor pode fazer isso), mas existem estruturas que você pode usar. Ver resposta à esta questão .

Além disso, aqui está uma boa visão geral de como fazer clientes RESTful no iPhone:

https: / /developer.apple.com/webapps/articles/creatingrestfulclients.html

Você pode retornar os dados no formato JSON. Há muitos analisadores JSON de código aberto disponíveis para o iPhone (TouchJSON sendo um).

Há uma outra classe disponível chamado NSPropertyListSerialization que você recebe um dicionário de dados.

Você pode fazer algo assim com os dados que você recebe

NSDictionary * PropertyList;
formato NSPropertyListFormat;
NSString * errorStr;

PropertyList = [NSPropertyListSerialization
propertyListFromData: receivedData
mutabilityOption: NSPropertyListImmutable
formato: & formato
ErrorDescription: & errorStr];

Desculpe, não sei o que tags são usadas aqui para formatação de código!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top