Reputation: 69
Ola, I am trying to find a way to save user scores so when it is closed from the background it saves their scores and when open again it displays that score once again. By the way the thing Im saving is a tap counter so when they tap it has to add onto their previous score.
Any suggestions?
Upvotes: 0
Views: 50
Reputation: 53112
Save:
int numberOfTaps = 42; // some number of taps
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setValue:[NSNumber numberWithInt:numberOfTaps] forKey:@"numberOfTaps"];
Retrieve:
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
int savedTaps = [[standardUserDefaults objectForKey:@"numberOfTaps"] intValue];
Just to make it extremely easy:
Copy these methods somewhere in your .m
- (void) saveNumberOfTaps:(int)numberOfTaps {
[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:numberOfTaps] forKey:@"numberOfTaps"];
NSLog(@"Saved numberOfTaps: %i", numberOfTaps);
}
- (int) getNumberOfTaps {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"numberOfTaps"] intValue]) {
int numberOfTaps = [[[NSUserDefaults standardUserDefaults] objectForKey:@"numberOfTaps"] intValue];
NSLog(@"Getting numberOfTaps: %i", numberOfTaps);
return numberOfTaps;
}
else {
NSLog(@"No taps saved yet");
return 0;
}
}
Then whenever you want to use these values, you can use the following:
// Save Taps
[self saveNumberOfTaps:14];
// Get Taps
int taps = [self getNumberOfTaps];
NSLog(@"taps retrieved: %i", taps);
Upvotes: 1
Reputation: 21497
It sounds like you're just starting out, so try using NSUserDefaults. Once you need something more advanced, look into Core Data.
Upvotes: 0