Onde guardar arquivo .plist no aplicativo para iPhone
-
09-09-2019 - |
Pergunta
Estou desenvolvendo um aplicativo para iPhone, em que eu quero usar um arquivo .plist para salvar algumas variáveis ??de configuração.
Na minha xcode onde criar o arquivo .plist e como acessá-lo ???
obrigado,
Solução
Você iria colocar na pasta de recursos. Em seguida, use algo como isto para carregá-lo:
NSString *file = [[NSBundle mainBundle] pathForResource:@"TwitterUsers" ofType:@"plist"];
NSArray *Props = [[NSArray alloc] initWithContentsOfFile:file];
Onde TwitterUsers é o nome do seu arquivo plist.
Se o seu arquivo plist contém chaves e valores que você faria a segunda linha um NSDictionary em vez de NSArray.
Outras dicas
Para armazenar o arquivo plist no seu diretório Documents você terá que incluir o arquivo plist no seu aplicativo e, em seguida, no primeiro lançamento copiá-lo para o diretório documentos.
Para ter acesso ao arquivo no diretório Documentos:
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
// <Application Home>/Documents/foo.plist
NSString *fooPath =
[documentsPath stringByAppendingPathComponent:@“foo.plist”];
Eu recomendaria mantendo-o no diretório de recursos no pacote do aplicativo, mas você pode simplesmente arrastá-lo para a janela do projeto. O método NSBundle
pathForResource:ofType:
deve dar-lhe um caminho, que você pode passar para NSDictionary
de dictionaryWithContentsOfFile:
.
Editar: Desculpe, exemplo de código completo (pensei que já tinha copiado e colado):
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyConfig" ofType:@"plist"];
NSDictionary *myConfig = [NSDictionary dictionaryWithContentsOfFile:path];
Editar Apenas me ocorreu "variáveis ??de configuração" pode não ser imutável. Se for esse o caso, ignorar esta resposta.
Eu recomendo que você use NSUserDefaults para armazenar variáveis ??de configuração em vez de rolar o seu próprio sistema.
Se você está modificando um .plist
dentro do seu pacote de aplicativos, você correrá o risco de invalidar a assinatura do pacote, enquanto não vai acabar bem.
Se você deve armazenar e modificar seu próprio .plist
, armazená-lo no diretório Documents
, que é também onde a sua aplicação deve armazenar qualquer coisa que ele baixa, cria, etc. Consulte Arquivo e Gestão de dados e NSFileManager .
Por padrão, se você tiver incluído o plist no lugar do projeto (em Recursos ou não) XCode irá copiá-lo para o pacote de aplicativos onde você pode obtê-lo com a chamada pathForResource
acima mencionado. Apenas pensei em mencionar que, como você pode preferir um agrupamento onde você não tê-lo em recursos ...
Você pode encontrar o livro exemplo sqlite ..... o arquivo de dados silte foi save para o diretório 'Documento' .... você vai saber a prcess
-
Por que isso invalida o pacote?
-
Será que esse arquivo plist nos recursos pasta ser apoiados no iTunes como arquivos na pasta documentos?