Search code examples
iosobjective-cnsuserdefaultsnsinteger

NSUserDefaults not incrementing


I am trying to increase an NSInteger using NSUserDefaults like this:

NSInteger attempts = [[NSUserDefaults standardUserDefaults]integerForKey:@"tries"];
NSInteger newA = attempts++;
[[NSUserDefaults standardUserDefaults]setInteger:newA forKey:@"tries"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog(@"Tries: %d",[[NSUserDefaults standardUserDefaults]integerForKey:@"tries"]);

However this is my NSLogs:

Tries: 0
Tries: 0
Tries: 0

Solution

  • Here is your issue

    NSInteger newA = attempts++;
    

    You're incrementing attempts after you set it to newA, try this instead :

    NSInteger newA = ++attempts;