2010-04-25 11 views
5

que tiene el código de abajo:Leer archivo de texto en la carpeta de documentos - 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]]; 
  • textviewerdownloadtextview es el de mostrar el texto del archivo. El nombre del archivo real se almacena en un NSUserDefault llamado recentDownload.

  • Cuando construyo esto, hago clic en button que esta debajo, y mi aplicación crashes.

  • ¿Hay algún problema con la sintaxis o simplemente un error?

+0

Si hubo un problema con la sintaxis, su código no se compilaría; no llegarías a la etapa de ejecutarlo y verlo estrellarse. Para depurar un bloqueo, use el depurador; debería estar diciéndole cómo se estrelló y dónde. –

Respuesta

9

La clase NSBundle se utiliza para encontrar cosas dentro de su paquete de aplicaciones, pero el directorio de documentos se encuentra fuera del paquete, por lo que la forma en que está generando el camino no va a funcionar. Tal vez puedas probar:

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

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

Ok, modifiqué parte de la codificación ... Mi aplicación aún se cuelga ... Aquí está el código en mi IBAction: http://www.heliotop.org/code.rtf También, ¿cómo haría una instrucción if ?, donde si el archivo reciente no es un archivo con la extensión "txt", volvería, y si fuera así, daría lugar a una acción .. – 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]; 

Esto funcionó para mí

De todos modos, gracias a todos ..

2

Para lectura/escritura desde el registro de este archivo de texto url.

+0

Asegúrese de establecer el indicador booleano "UIFileSharingEnabled" en 'SÍ' en su info.plist. – msgambel

Cuestiones relacionadas