2011-11-01 31 views
7

Quiero escribir mis propios registros en un archivo de texto en mi iPhone. Escribí un método rápido que escribe una cadena en un archivo. En este momento, lo guarda en el directorio de Documentos, lo cual, si está en el dispositivo, le costará bajarse, ya que no puedo acceder a él. ¿Hay una forma mejor de obtener rápidamente este archivo del dispositivo después de haberlo escrito?Objetivo-C: Crear archivo de texto en el dispositivo y recuperar fácilmente el archivo

/** 
* 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

Nota: si el archivo de registro llega a ser más grande que unos 500 KB más o menos, se volverá realmente ineficiente. Considere solo escribir cambios (usando otra API) – FeifanZ

Respuesta

10

Añadir Application supports iTunes file sharing de información de construcción de tu destino de aplicación en Xcode:

enter image description here

A continuación, se puede navegar con facilidad, recuperar y eliminar todos los archivos creados por la aplicación desde iTunes, justo debajo de Devices > Your device > Apps > File Sharing:

enter image description here

+0

Oooh. Me gusta esto como una característica de prueba. Definite +1 –

+0

¡Perfecto! Esto es justo lo que estaba buscando. Sabía de él, pero olvidé que podría usarlo para este propósito. ¡Gracias! –

0

Puede que tenga que captar lo que el número de registros que ha creado hasta el momento y crear un nuevo nombre para cada registro sesgada en eso.

Así que puede guardar su último nombre de registro como una cadena en NSUserDefaults y obtener el número al final de eso y agregar uno en ese int capturado listo para el siguiente nombre.

Así que si usted tiene @ "log4" se puede obtener el 4 de eso y hacer que 5 para que la próxima registro se denomina "log5"

Sólo mi 2 centavos: P

+0

Sí, crearé un nuevo registro cada vez que inicie el proceso en mi aplicación. –

0

Con respecto a la parte 'Cómo obtener el archivo' de la pregunta

iExplorer, anteriormente iPhone Explorer le permite ver sus aplicaciones, incluida la carpeta de documentos sin jailbreaking de sus dispositivos.

En mi experiencia (aunque de una versión anterior), obtener los archivos del teléfono puede ser un poco temporal (es decir, arrastrar un archivo a mi escritorio y aunque crea el archivo, no escribe ninguno de los datos), puede obtener los archivos de su dispositivo.

Cuestiones relacionadas