Guardar y recuperar la fecha en objective-c con Xcode

Programando para nuestro dispositivo Apple, iphone por ejemplo, con objective-c y con e el Xcode, es posible que queramos almacenar la fecha de forma persistente, es decir, que no se borre cuando cerramos la aplicación.

Para ello utilizaremos las variables de preferencia de nuestra aplicación, o sea, NSUserDefaults y guardaremos la fecha actual (es un tipo NSDate)

Utilizaremos este código para guardar, por ejemplo, la fecha y la hora de hoy:

//Instanciamos la variable de las preferencias de la aplicación
NSUserDefaults *defaults = [NSUSerDefaults standardUserDefaults];
//Guardamos la fecha actual en la variable hoy
NSDate *hoy = [NSDate date];
//Guardamos el valor de hoy en las variables de preferencias de la aplicación
[defaults setObject:hoy forKey:@"ValorHoy"];
//Forzamos la sincronización para que guarde el valor ya
[defaults synchronize];

Y con este otro código la recuperamos:

//Instanciamos la variable de las preferencias de la aplicación si no la habíamos utilizado ya
//en caso de haberla instanciado ya, no haría falta este paso
NSUserDefaults *defaults = [NSUSerDefaults standardUserDefaults];
//Cargamos la fecha actual en la variable hoy
NSDate *fechaGuardada = (NSDate*)[defaults objectForKey:@"ValorHoy"];

Y ya tendríamos la fecha recuperada que guardamos anteriormente en la variable fechaGuardada.