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?

Foi útil?

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.

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