Pergunta

Ok esta é uma questão bastante ampla. Esta é a minha primeira App e eu não tenho certeza que a melhor maneira de fazer isto. O app é no iPhone.

Eu tenho uma classe 'Restaurant'. O restaurante tem muitos atributos diferentes e horários de abertura. Eu atualmente armazenar um restaurante em uma instância de NSData (cumpre a NSCoding) de armazenamento local é fácil e eu só uso NSData.

acabo construído em uma função de importação / exportação. Quero esses dois métodos para "post" de um restaurante para a web e "pegar" um restaurante a partir da web. Eu sei que posso fazer isso com NSURLConnection e eu tê-lo instalado e funcionando.

No entanto eu quero ser mais inteligente sobre o assunto. Por exemplo, o que se eu quiser levar o meu lista online de restaurantes que foram submetidos e construir uma interface web que pode também interagir com os dados?

Este é o que eu estou pensando até agora: Crie um método 'toString' que irá converter minha classe em uma representação textual. Em seguida, armazenar a seqüência em um servidor. Isso irá substituir o armazenamento NSData online. Será que este som apropriado?

No entanto, eu quero ser capaz de consultar a quantidade de restaurantes e ter um pouco mais de controle sobre a minha 'banco de dados' online. É XML a resposta? Eu estava prestes a começar a olhar para Amazon Web Services e aprender tanto JSON ou Rest.

Qualquer pedaços de conselhos?

Graças

Dan

Foi útil?

Solução

Saiba mais sobre REST, que é a maneira mais fácil e mais limpa para fornecer uma API baseada em web. Algumas estruturas, como Ruby on Rails, dar-lhe um descanso de interface para fora da direita da caixa.

Em seguida, você precisa encontrar uma maneira de converter seus objetos no iPhone em um formato de fácil REST. XML e JSON são as duas opções, mas infelizmente eu não vi qualquer código para converter de / para XML ou JSON que eu posso realmente recomendo, já que eu não tentei nenhum ainda. Mas, existem alguns projetos que podem levar você na direção certa. Um dos mais promissores para o futuro é o seguinte:

http://github.com/yfactorial/objectiveresource/tree/master

Outras dicas

Eu não estou muito familiarizado com o desenvolvimento do iPhone ainda, mas se há uma maneira razoavelmente fácil de consumir serviços web eu recomendo usar isso com parâmetros digitados. Isto faria com que estes serviços mais "usável" de outros sistemas também, eles não precisam saber como serialize / pack objetos a uma corda, mas apenas como chamar uma função: storeRestaurang (string nome, classificação int ...) etc.

Este é um artigo que irá verificar mim desde que eu espero para entrar no desenvolvimento do iPhone um pouco mais: http://icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/

Parece que você quiser usar um plist. Qualquer uma das classes de coleção de cacau pode ser gravado em um plist, que é uma raça de arquivo xml. A parte doce é se você usar classes de valor de cacau padrão, você pode escrever a coleção para fora, e lê-lo de volta mais tarde.

NSString, NSNumber, NSDate, NSData, NSAray, objetos NSDictionary pode ser colocado em uma coleção e armazenado para um plist diretamente. Outras classes terão que ser serializado em NSData então gravados em disco como um plist. Para dados verdadeiramente personalizados, um NSKeyedArchiver é provavelmente o que você quer.

Para strings simples e dados de números, empacotar tudo em um NSDictionary e, em seguida, escrevê-lo a um plist. Agora olhar em volta no seu Mac e você verá o quão popular plists são.

API NSDictionary - Armazenando Dicionários

lista de propriedades Guia de Programação

Arquivos e Serializações Guia de Programação de Cacau

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