0

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
Tulon
  • 4,011
  • 6
  • 36
  • 56
Abdullah Shafique
  • 6,878
  • 8
  • 35
  • 70

1 Answers1

7

Here is your issue

NSInteger newA = attempts++;

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

NSInteger newA = ++attempts;
streem
  • 9,044
  • 5
  • 30
  • 41
  • Which why `NSInteger newA = attempts + 1;` is a better way to go, it does not have extra semantics such as pre vs post update. Or even just update `attempts`: `attempts +=1;` and skip `newA`. – zaph May 20 '14 at 15:23