Diretório de documentos no ipod touch e iphone
-
12-09-2019 - |
Pergunta
Estou projetando um aplicativo que lê dados para o iPod Touch/iPhone que é enviado por meio de soquetes multicast com UDP e preciso armazená -lo como um arquivo em um diretório de documentos. Isso existe no iPhone ou iPod Touch? Eu sei que existe NSFileHandle e Nsfilemanager, que é o que pretendo usar, para cuidar de ler e escrever no arquivo, mas não tenho certeza de onde a seção "Meus documentos" do iPod touch é se você sabe o que eu Estou dizendo. Ainda não estou familiarizado com o diretório de arquivos do iPod/iPhone, então qualquer ajuda é apreciada! Existe algum tipo de diretório "geral" que todos os desenvolvedores usam para armazenar seus arquivos se tiverem algum envolvimento em seu aplicativo?
Solução
Você deve usar o diretório de documentos do seu aplicativo para armazenar arquivos persistentes. Você pode obter o caminho para o diretório usando esta função, que a Apple inclui em seu modelo para um aplicativo usando dados principais:
/**
Returns the path to the application's documents directory.
*/
- (NSString *)applicationDocumentsDirectory {
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
return basePath;
}
Outras dicas
Mais recentemente, o modelo para um aplicativo de dados principal fornece código como este:
- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
Se o NSARRAY retornado do NSSearchPathfordirectoriesIndomains estiver vazio, o LastObject retorna nulo; portanto, como resultado, o código é mais curto e mais limpo.
Uma coisa que você deve estar ciente-a partir do iOS 5, você não deve colocar dados não-usuários no diretório de documentos. Seu aplicativo pode ser rejeitado. Em vez disso, você deve pensar em colocar esses logs Caches
diretório. Para obter o caminho deste, você precisa substituir NSDocumentDirectory
com NSCachesDirectory
No código de exemplo acima.