2010-02-22 10 views
8

Soy algo nuevo en el desarrollo de aplicaciones de iPhone basadas en vista, y necesito descargar este archivo "txt" de Internet y guardarlo en la carpeta de documentos de la aplicación. ¿Alguien puede mostrarme simplemente cómo puedo hacer esto? El archivo de texto es de un tamaño pequeño, así que no necesitaría ningún objetos de interfaz de usuario ...¿Cómo descargar un archivo de texto con el SDK de iPhone?

Gracias,

Kevin

Respuesta

11
NSError *err = nil; 
NSString *url = [[NSString stringWithFormat:@"http://myurl.com/mypage"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSString *myTxtFile = [NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:&err]; 
if(err != nil) { 
    //HANDLE ERROR HERE 
} 

posteriormente grabarlo en que puede utilizar:

[[NSUserDefaults standardUserDefaults] setObject:myTxtFile forKey:@"MyFile"]; 

Y para recuperarlo:

NSString *myTxtFile = [[NSUserDefaults standardUserDefaults] stringForKey:@"MyFile"]; 

actualizado para reflejar la entrada de Joe

+0

¿Dónde va a estar MyFile.txt? Revisé los documentos y no está allí ... – lab12

+1

Lo siento, no está realmente en la carpeta de documentos, está en los valores predeterminados del usuario. Puedes recuperarlo usando la última línea en mi respuesta. ¿Hay alguna razón específica por la que debe estar en la carpeta de documentos? –

+0

No, en realidad, pensé que sería más fácil encontrarlo en la carpeta Documentos. :RE. – lab12

1

Hey se puede escribir el contenido de la cadena en el archivo en la carpeta de documentos de esta manera:

// obtener el directorio de documentos:

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

// crear un nombre de archivo para escribir los datos en el directorio de documentos:

NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",documentsDirectory]; 

// guardar el contenido de myTxtFile al directorio documentos

**[myTxtFile writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];** 

Después de ejecutar este, encontrará un archivo llamado textfile.txt en la carpeta de documentos con el contenido almacenado en ella ..

¡Saludos!

+0

¿por qué usar 'NSStringEncodingConversionAllowLossy'? Además, no mencionó la clase de 'myTxtFile' – Raptor

Cuestiones relacionadas