Directory documento iPod Touch e iPhone
-
12-09-2019 - |
Domanda
Sto progettando un'applicazione che legge i dati al touch / iPhone iPod che viene inviato ad esso tramite prese multicast con UDP e ho bisogno di memorizzare come file in una directory del documento. Ritiene che esiste sul su iPhone o iPod Touch? So che c'è NSFileHandle e NSFileManager, che è quello che ho intenzione di utilizzare, per prendersi cura di lettura e scrittura per il file, ma non sono sicuro dove la sezione "Documenti" di iPod touch è che se sai cosa voglio 'm dicendo. Non ho familiarità con la directory dei file iPod / iPhone che ancora bene, in modo che qualsiasi aiuto è apprezzato! C'è una sorta di directory "generale" che tutti gli sviluppatori usano per archiviare i propri file in se hanno alcun coinvolti nella loro applicazione?
Soluzione
Si dovrebbe usare directory Documenti dell'applicazione per memorizzare i file persistenti. È possibile ottenere il percorso della directory di utilizzare questa funzione, che Apple include nel proprio modello per un'applicazione che utilizza Core Data:
/**
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;
}
Altri suggerimenti
Più recentemente, il modello per un'applicazione Core Data fornisce il codice in questo modo:
- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
Se il NSArray tornato da NSSearchPathForDirectoriesInDomains è vuoto, LastObject restituisce nil, quindi di conseguenza, il codice è più breve e più pulito.
Una cosa che si dovrebbe essere a conoscenza - come di iOS 5, non si dovrebbe mettere non-user--dati generati nella directory Documenti. La vostra applicazione può essere respinto. Invece si dovrebbe pensare di mettere tali registri nella directory Caches
. Per ottenere il percorso di questo, è necessario sostituire NSDocumentDirectory
con NSCachesDirectory
nel codice di esempio qui sopra.