iPhone: save y cargar la información de inicio de session de un usuario desde un file

Hola chicos, estoy teniendo un problema tratando de save el inicio de session (correo electrónico) y la contraseña (caracteres / numbers) de un usuario. Estos son ambos UITextFields de NSStrings.

Lo tengo configurado ahora mismo al final de la vista antes de que sea descartado como

[email writeToFile:@"Login" atomically:YES encoding:NSUTF8StringEncoding error:&error]; [password writeToFile:@"Password" atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

Sin embargo, no estoy seguro de cómo hacer para cargarlos cuando se carga la vista. Intenté hacer esto al comienzo de la carga de la vista:

 NSString *email; NSString *password; NSError *error; NSString *em = [[NSString alloc] initWithContentsOfFile:@"Login" encoding:NSUTF8StringEncoding error:&error]; NSString *pass = [[NSString alloc] initWithContentsOfFile:@"Password" encoding:NSUTF8StringEncoding error:&error]; if (error == nil) { userEmail.text = em; userPassword.text = pass; } email = userEmail.text; password = userPassword.text; 

Sin embargo, en realidad no puedo get los datos en estos dos files … ¿Es porque tengo que tener la ruta completa del file? Además, ¿hay una manera de save estos dos en un file (NSMutableDictionary)? ¡Cualquier consejo sería genial!

Alex

No debe almacenar las cnetworkingenciales de un usuario en text sin formatting en un file. Se puede leer fácilmente si el teléfono se pierde o se hackea.

Un enfoque mucho mejor es almacenar la información de forma segura en el llavero iPhone. Esto manejará el encryption / desencryption para usted y es más seguro de lo que es probable que usted mismo escriba.

Una biblioteca que facilitará el trabajo con el llavero es SFHFKeychainUtils . Esto le dará una abstracción que funciona tanto en el Simulador como en el dispositivo.

Es posible que desee ver NSUserDefaults en su lugar, pero para responder a su pregunta puede que desee especificar la ruta.

Obtener ruta:

 NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDir = [paths objectAtIndex:0]; NSString *filePath = [NSString stringWithFormat:@"%@/Login", docDir]; 

Salvar:

 [em writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

Carga:

 NSString * em = [[NSString alloc] initWithContentsOfFile: encoding filePath: error NSUTF8StringEncoding: & error];

¡No te olvides de [em] para evitar memory leaks!