2010-04-25 22 views
5

Ich habe diesen Code unten:lesen Textdatei in Dokumentordner - 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 ist die textview den Text aus der Datei anzuzeigen. Der tatsächliche Dateiname wird in einem NSUserDefault namens recentDownload gespeichert.

  • Wenn ich das baue, klicke ich auf die button, die dies ist, und meine Anwendung crashes.

  • Gibt es etwas falsch mit der Syntax oder einfach nur Fehler?

+0

Wenn es ein Problem mit der Syntax gab, würde Ihr Code nicht kompilieren; Du würdest nicht auf die Bühne kommen, um es zu laufen und zu sehen, wie es zusammenbricht. Verwenden Sie den Debugger, um einen Absturz zu debuggen; es sollte dir sagen, wie du abgestürzt bist und wo. –

Antwort

9

Die NSBundle Klasse ist für die Suche nach Dingen in Ihren Anwendungen Bündel verwendet, aber das Verzeichnis Dokumente außerhalb des Bündels ist, so dass die Art und Weise Sie Erzeugen der Pfad wird nicht funktionieren. Versuchen Sie stattdessen:

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

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

Ok ich habe etwas von der Codierung geändert .. Meine Anwendung stürzt immer noch ab .. Hier ist der Code unter meiner IBAction: http://www.heliotop.org/code.rtf Auch wie würde ich eine if-Anweisung machen, wo wenn Die letzte Datei ist keine Datei mit der Erweiterung "txt", sie würde zurückgeben, und wenn es dann zu einer Aktion führen würde. – 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]; 

Das ist für mich gearbeitet

Wie auch immer, ich danke Ihnen allen ..

2

zum Lesen/Schreiben von Textdatei Prüfung dieses url.

+0

Stellen Sie sicher, dass Sie das boolesche Flag "UIFileSharingEnabled" in Ihrer Datei "info.plist" auf "YES" setzen. – msgambel