Pergunta

Existe alguma abordagem de "melhores práticas" para o armazenamento persistente estática de dados para iPhone apps?

Eu tenho um aplicativo que lê um dicionário de aproximadamente 1000 itens muitos dos quais são matrizes. Eu comecei usando um único plist para isso e tornou-se um pouco complicado especialmente porque grande parte dos valores são HTML strings.

Existe uma maneira melhor para mim abordar isso? Estou pensando em escalar este aplicativo significativamente e eu, obviamente, não quero mudar minha abordagem midstream.

Eu pesquisei para iphone data storage e variantes, mas vêm-se curto para qualquer coisa até mesmo tocar em uma melhor prática.

Foi útil?

Solução

Parece que você pretende distribuir alguns dados com seu aplicativo. A lista de propriedades é provavelmente o mais fácil de manter, mas ele será carregado na memória de uma só vez. Isso poderia comer um monte de memória do dispositivo.

Um banco de dados SQLite, por outro lado, irá carregar apenas os dados que você pedir. Eu não sei como os seus dados são estruturados, mas você poderia facilmente criar pares chave-valor com uma tabela de banco de dados único. (A única tabela com uma coluna key e uma coluna value) Então, se fosse comigo, eu ia escrever uma classe Objective-C para embrulhar as consultas de banco de dados para que eu possa escrever instruções fáceis como:

NSString *welcomeText = [[MyData sharedData] dataWithKey:@"WelcomeText"];

Obter os dados no banco de dados em primeiro lugar não tem que ser difícil. Você pode usar o utilitário sqlite3 linha de comando para a granel carregar seus dados. Há um comando chamado .import que irá importar os dados de um arquivo de texto.

Espero que isso faz com que você se movendo na direção certa!

Outras dicas

Eu iria com uma solução sqlite. Os aplicativos que eu estou trabalhando agora, que são apenas aplicativos para me ajudar a aprender desenvolvimento iPhone, principalmente todos sqlite uso. Eu uso o plugin SQLite para o Firefox para ajudar com a manutenção do banco de dados, que funciona surpreendentemente bem. https://addons.mozilla.org/en-US/firefox/addon/ 5817

Como Alex sugeriu o uso de uma classe wrapper também seria o melhor caminho a percorrer.

Não se esqueça com 3,0 você pode usar uma camada Core Data em torno SQLite que pode torná-lo mais atraente para você.

Se você não precisa armazenar qualquer informação relacional sobre os seus dados, por que não usar arquivos? Haverá algum espaço filesystem desperdiçado, mas os arquivos simples pode ser o mais memória e solução eficiente CPU, dependendo do tamanho e número de seus itens.

Eu nunca desenvolveu um aplicativo para iPhone, mas eu tenho jogado em torno do sistema de arquivos. Eu vi bases de dados SQLite que flutuam em torno de vários lugares do telefone. Tenho certeza de que ele usa um banco de dados SQLite para armazenar as entradas de calendário.

Gostaria de usar sqlite. Ele já está lá, fácil de usar, e irá fornecer o caminho mais flexível para expansão no futuro.

Eu uso sqlite para dados estáticos no meu iPhone apps o tempo todo.

Tudo que eu fiz foi salvar estado quando o aplicativo é desligado. Eu usei um arquivo para isso.

sons SQLite perfeito para a sua aplicação. SQLite é muito fácil. Eu usei-o em aplicativos Adobe AIR.

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