Skip to content

Plist para iOS o que é e como funciona

Plist para iOS o que é e como funciona

Bom pessoal vamos fazer um post hoje sobre um tema que irá ajudar muito especialmente para aqueles que estão começando a programar, o uso de plists é bem interessante especialmente para aqueles que precisam de uma maneira fácil de salvar os dados do aplicativo de maneira extremamente simples rápida e fácil.

Mas antes de tudo vamos definir o que é uma plist, imagine a seguinte situação quando vamos salvar dados em arquivo de texto, apenas para ter os dados salvos, uma plist é como se fossemos salvar em um txt, porem o plist é diferente de um arquivo de texto é um array, simples assim. Isso claro é um definição simplista do que é.

Mas e quais as vantagens de se usar uma plist ao invés de usar CoreData ou SqLite ?

A maior vantagem é sua praticidade, é muito mais simples salvar os dados em plist e recuperar eles porém tem suas desvantagens, fica muito mais simples para um usuário acessar os dados salvos dessa maneira, e em projetos grandes é recomendável usar o CoreData ou SqLite, porem para projetos menores plists são ferramentas a se considerar.

Devidas explicações dadas vamos ao código.

Vamos criar um novo projeto simples vamos só salvar os dados no dispositivo e recuperar os dados, apenas para diminuir o trabalho não vamos criar um Single View vamos criar uma tabbed que tem duas telas, fizemos isso apenas para economizar um pouco de tempo.

imagem1

nossa primeira tela vamos colocar apenas um campo texto para o usuário digitar o que ele quer salvar e um botão salvar.

imagem2

e nossa segunda tela vamos apenas colocar um campo de texto, onde vamos mostrar os dados inserido pelo usuário na primeira tela.

imagem3

Vamos a codificação na nossa classe FirstViewController vamos fazer a maior parte do código no primeiro momento vamos apenas criar um array e iniciar colocar um ação para nosso botão. Essa ação será a maior do nosso projeto em nosso viewDidLoad iniciamos o array criado, nosso action inicia inserindo um novo dado no array:

[dadosParaSalvar addObject:self.campoTexto.text];

Agora com precisamos salvar nosso array em algum lugar, o ideal seria salvar o array na mesma pasta do aplicativo, ou seja precisamos definir onde está nosso app.

Vamos precisar de três variáveis do tipo string:

//abre o caminho para a home do dispositivo

NSString *caminhoParaHome;

// arquivo que contem o caminho para a pasta Documents do app

NSString *caminhoParaDocuments;

// nessa variavel salvamos o nome de nosso arquivo completo

NSString *caminhoParaMeuArquivoSalvo;

Vamos usar essas variáveis para definir onde vamos salvar, o que vamos salvar e o caminho para a pasta home do app.

Basicamente vamos precisar dessas três linhas de código:

// acessa a pasta Home do app

caminhoParaHome = NSHomeDirectory();

// acessa a pasta Documents dentro da home do app

caminhoParaDocuments = [caminhoParaHome stringByAppendingPathComponent:@”Documents”];

// acessa a pasta do app, e cria o arquivo meusDados,plist

caminhoParaMeuArquivoSalvo = [caminhoParaDocuments stringByAppendingPathComponent:@”meusDados.plist”];

Agora temos todos os caminhos para salvar nossa plist, precisamos salvar ela, para isso vamos usar a seguinte linha de código:

[dadosParaSalvar writeToFile:caminhoParaMeuArquivoSalvo atomically:YES];

E pronto basicamente salvamos os dados do nosso array já serão salvos em nosso dispositivo, e para mostrar o caminho do nosso arquivo precisamos só dar um log em nossa variável caminhoParaDocuments.

Ok já temos um sistema para salvar os dados, (lembrando que os dados serão substituídos a cada vez que você salvar) agora precisamos retornar esses dados para nosso aplicativo.

Em nossa SecondViewController vamos precisar de um outlet para nosso campo de texto e um array para salvar o retorno.

Com ambos declarados e iniciados, usamos basicamente o mesmo código a tela anterior, porém mudamos a última linha, pois não precisamos salvar mais os dados, e sim retornar os que já estão salvos, vamos apenas copiar e colar nossa linhas da action que criamos para salvar os dados, mas a última linha vai mudar, nosso viewDidLoad da segunda tela fica da seguinte maneira:

arrayRetornado =[[NSMutableArray alloc]init];

//abre o caminho para a home do dispositivo

NSString *caminhoParaHome;

// arquivo que contem o caminho para a pasta Documents do app

NSString *caminhoParaDocuments;

// nessa variavel salvamos o nome de nosso arquivo completo

NSString *caminhoParaMeuArquivoSalvo;

caminhoParaHome = NSHomeDirectory();

caminhoParaDocuments = [caminhoParaHome stringByAppendingPathComponent:@”Documents”];

caminhoParaMeuArquivoSalvo = [caminhoParaDocuments stringByAppendingPathComponent:@”meusDados.plist”];

// retorna o que estiver salvo dentro do arquivo se selecionamos

arrayRetornado = [NSMutableArray arrayWithContentsOfFile:caminhoParaMeuArquivoSalvo];

self.campoTexto.text = [NSString stringWithFormat:@”%@”,arrayRetornado];

Basicamente a única diferença entre os dois códigos está na última linha em um nós salvamos os dados e no outro nós retornamos, agora podemos fazer um teste simples, abra o aplicativo e salve alguma frase, vá para a segunda tela e veja se ela está aparecendo la, caso ela já esteja la feche e reabra o app, vá direto a segunda tela a frase ainda deve estar sendo mostrada la.

Bom pessoal por hoje é isso o link para o download do projeto completo SalvandoPlist , espero ter ajudado.

No comment yet, add your voice below!


Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *