2014-11-07 8 views
9

Ho sviluppato per iOS sin dall'inizio e ho incontrato qualche problema. Ho cominciato a fare un app che ha bisogno di creare file e salvarli al supporto cartella di documenti e l'applicazione, ma il buon vecchio' modo standard di utilizzare ilLa directory dei documenti dell'obiettivo C continua a cambiare sul dispositivo

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES); 
NSString *filePath = paths[0]; 

Non funziona. Continua a creare un percorso file diverso ogni volta che viene lanciata l'app.

Ho cercato su google su questo e tutti finora sembrano solo dire che hanno questo problema sul simulatore. Tuttavia, questo non è un problema limitato al simulatore, si verifica sul dispositivo ogni volta che viene avviata l'app, indipendentemente dal fatto che venga eseguito da Xcode o meno. Altri risultati di ricerca mi dicono semplicemente il vecchio modo di farlo e/o lo sono da troppi anni fa.

Qualcuno sa che il modo corrente di scrivere nelle cartelle Documenti e Application Support è? Questo è un problema la compilazione da Xcode 6.1, utilizzando la SDK8.1 iOS, in esecuzione su entrambi iOS7.1 e iOS8.1

Qualsiasi aiuto sarebbe apprezzato

+0

Il codice che hai postato è corretto. Non importa se il percorso continua a cambiare. – rmaddy

+0

Sì, perché non riesco a ottenere i file che ho scritto nella cartella documenti – Hayden

risposta

18

Se si memorizzano i percorsi in memoria persistente con la intenzione di utilizzare tale percorso in una data futura, è necessario memorizzare solo il percorso relativo alla cartella Documenti dell'app e quindi ogni volta che è necessario accedere a tale risorsa, ottenere il percorso della cartella Documenti in fase di esecuzione e aggiungere il percorso relativo della risorsa.

Per inciso, vedo solo questo comportamento del percorso sandbox quando eseguo la mia app tramite Xcode. Se eseguo l'app direttamente dal mio dispositivo, il percorso è invariato. Indipendentemente da ciò, sarei sempre propenso a usare percorsi relativi piuttosto che percorsi fissi. Non presumo mai che il percorso sandbox non possa cambiare (ad esempio, se l'app viene sottoposta a backup e ripristinata in un secondo momento, non presumo che i percorsi siano invariati).

+0

Vero. Ho pensato che il codice sopra è pensato per ottenere la cartella giusta. Non sto memorizzando il percorso assoluto da nessuna parte e questo cambio di percorso avviene indipendentemente dal fatto che io percorra o meno Xcode su un dispositivo – Hayden

+0

Se non stai memorizzando il percorso da nessuna parte, allora non capisco perché ti interessi se il percorso è cambiato , purché il file sia ancora lì. Quando salvi un file in Documenti e poi lo eseguo di nuovo da Xcode, il percorso è diverso, ma il file è ancora lì. Se non trovi il tuo file, assicurati innanzitutto che il file sia stato salvato con successo. – Rob

+0

Il file non è lì quando ricarico l'app, questo è il motivo per cui sono confuso. Quando vado a salvare il file ne controllo l'esistenza con fileExistsAtPath: isDirectory di NSFileManager: il file esiste e non è una directory. Mentre l'app è ancora aperta, faccio lo stesso e il file esiste e non è una directory. Quando ricarico l'app il file non esiste affatto. Se il file rimane tra i carichi andrebbe bene, ma non lo è, anche se dice che è stato salvato correttamente – Hayden

Problemi correlati