iOS - Not able to store NSDate into NSUserDefaults

ios, nsdate, nsuserdefaults

Solution

Since your goal to is keep track of the very first time a user starts your app, you need something like this in `application:didFinishLaunchingWithOptions`:

NSDate *date = [[NSUserDefaults standardUserDefaults] objectForKey:@"CONSCIENCE_START_DATE"];
if (!date) {
    // This is the 1st run of the app
    date = [NSDate date];
    [[NSUserDefaults standardUserDefaults] setObject:date forKey:@"CONSCIENCE_START_DATE"]; // Save date
}

NSLog(@"First run was %@", date);

Problem

In my application, i want to store the date at which the app is started for the first time. I'm using following code in application:didFinishLaunchingWithOptions method ``` NSDate* today = [NSDate date]; [[NSUserDefaults standardUserDefaults] registerDefaults: @{@"CONSCIENCE_START_DATE" : today}]; NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"CONSCIENCE_START_DATE"]); ``` But every time when i start the application, its printing the time at which the app is starting. Its not printing the date at which i started the app. I tried to reset the simulator and ran the code again. Still no success. Can some one point me the error in my code please?

Original source