2010-04-25 18 views
5

ho questo codice qui sotto:Leggi Text File nella cartella Documenti - Iphone SDK

NSString *fileName = [[NSUserDefaults standardUserDefaults] objectForKey:@"recentDownload"]; 
    NSString *fullPath = [NSBundle pathForResource:fileName ofType:@"txt" inDirectory:[NSHomeDirectory() stringByAppendingString:@"/Documents/"]]; 
    NSError *error = nil; 

    [textViewerDownload setText:[NSString stringWithContentsOfFile:fullPath encoding: NSUTF8StringEncoding error:&error]]; 
  • textviewerdownload è la textview visualizzazione del testo dal file. Il nome del file attuale è memorizzato in NSUserDefault chiamato recentDownload.

  • Quando si crea questo, faccio clic sul button che è sotto, e la mia applicazione crashes.

  • C'è qualcosa di sbagliato nella sintassi o semplicemente un semplice errore?

+0

Se ci fosse un problema con la sintassi, il tuo codice non verrebbe compilato; non si arriverebbe al punto di eseguirlo e vederlo crollare. Per eseguire il debug di un arresto anomalo, utilizzare il debugger; dovrebbe dirti come sei caduto e dove. –

risposta

9

La classe NSBundle viene utilizzato per trovare le cose all'interno delle applicazioni fascio, ma la directory Documenti è al di fuori del fascio, in modo che il modo in cui si sta generando il percorso non funzionerà. Prova a modificare:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, 
                YES); 

NSString *fullPath = [[paths lastObject] stringByAppendingPathComponent:@"recentDownload.txt"]; 
+0

Ok ho cambiato parte della codifica .. La mia applicazione si blocca ancora .. Ecco il codice sotto la mia IBAction: http://www.heliotop.org/code.rtf Anche come farei una dichiarazione if, dove se il file recente non è un file con estensione "txt", verrebbe restituito, e se fosse quindi risultato un'azione .. – lab12

6
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]; 

    if (![[NSFileManager defaultManager] fileExistsAtPath:myPathDocs]) 
    { 
     NSString *myPathInfo = [[NSBundle mainBundle] pathForResource:@"myfile" ofType:@"txt"]; 
     NSFileManager *fileManager = [NSFileManager defaultManager]; 
     [fileManager copyItemAtPath:myPathInfo toPath:myPathDocs error:NULL]; 
    }  

    //Load from File 
NSString *myString = [[NSString alloc] initWithContentsOfFile:myPathDocs encoding:NSUTF8StringEncoding error:NULL]; 

Questo ha funzionato per me

In ogni caso, grazie a tutti voi ..

2

Per lettura/scrittura dal check file di testo questo url.

+0

Assicurati di impostare il flag booleano "UIFileSharingEnabled" su "YES" nel tuo info.plist. – msgambel

Problemi correlati