2011-11-01 6 views
7

Sto scrivendo i miei registri su un file di testo sul mio iPhone. Ho scritto un metodo rapido che scrive una stringa in un file. In questo momento lo salva nella cartella Documenti, che, se sul dispositivo sarà doloroso scendere, dal momento che non posso semplicemente sfogliarlo. C'è un modo migliore per ottenere rapidamente questo file dal dispositivo dopo averlo scritto?Objective-C: Crea file di testo sul dispositivo e recupera facilmente il file

/** 
* Logs a string to file 
* 
* @version $Revision: 0.1 
*/ 
+ (void)logWithString:(NSString *)string { 

    // Create the file 
    NSError *error; 

    // Directory 
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"log.txt"]; 

    // Get the file contents 
    NSData *localData = [NSData dataWithContentsOfFile:filePath]; 
    if (localData) { 
     NSString *logString = [[NSString alloc] initWithData:localData encoding:NSUTF8StringEncoding]; 
     string = [logString stringByAppendingFormat:@"%@\n", string]; 
     [logString release]; 
    } 

    // Write to the file 
    [string writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

}//end 
+0

Sidenote: se il file di registro diventa più grande di circa 500 KB circa, questo diventa davvero inefficiente. Considera solo le modifiche di scrittura (utilizzando altre API) – FeifanZ

risposta

10

Aggiungere Application supports iTunes file sharing alle informazioni di build del bersaglio applicazione in Xcode:

enter image description here

Quindi, si può facilmente navigare, recuperare ed eliminare tutti i file creati con l'applicazione da iTunes, proprio sotto Devices > Your device > Apps > File Sharing:

enter image description here

+0

Oooh. Mi piace come una funzione di test. Definito +1 –

+0

Perfetto! Questo è proprio quello che stavo cercando. Avevo saputo di lui, ma ho dimenticato che potevo usarlo per questo scopo. Grazie! –

0

Potrebbe essere necessario acquisire il numero di registri che è stato creato finora e creare un nuovo nome per ogni errore di registro su quello.

Quindi è possibile salvare l'ultimo nome dei registri creati come una stringa in NSUserDefaults e ottenere il numero dalla fine di quello e aggiungerne uno su quello catturato int pronto per il nome successivo.

Quindi, se avete @ "Log4" è possibile ottenere il 4 di questo e renderlo 5 in modo che il registro successivo è chiamato "Log5"

Solo i miei 2 centesimi: P

+0

Sì, creerò un nuovo registro ogni volta che avvierò il processo nella mia app. –

0

Per quanto riguarda alla parte "Come ottenere il file" della domanda

iExplorer, in precedenza iPhone Explorer consente di visualizzare le app, compresa la loro cartella documenti senza jailbreak dei dispositivi.

Nella mia esperienza (anche se di una versione precedente), ottenere i file dal telefono può essere un po 'temporaneo (cioè trascino un file sul mio desktop e anche se crea il file, non scrive nessuno dei dati), è possibile ottenere i file dal dispositivo.

Problemi correlati