Xcode Scoring System
Thanks ahead of time.
Mac OS X (10.5.5)
Mac OS X (10.5.5)
@interface MyViewController : UIViewController {
int score;
UILabel *label;
}
@property (nonatomic, assign) int score;
@property (nonatomic, retain) IBOutlet UILabel *label;
- (IBAction)didTap;
@end
@implementation MyViewController
@synthesize score, label;
- (IBAction)didTap {
score++;
label.text = [NSString stringWithFormat:@"%d", score];
}
- (void)dealloc {
[label release];
[super dealloc];
}
@end
@interface ScoreAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
ScoreViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet ScoreViewController *viewController;
@end
@implementation ScoreAppDelegate
@synthesize window;
@synthesize viewController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[viewController readState];
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
- (void)applicationWillTerminate:(UIApplication *)application {
// NSLog(@"applicationWillTerminate");
[viewController saveState];
}
- (void)dealloc {
[viewController release];
[window release];
[super dealloc];
}
@end
// dictionary keys
extern NSString *const scScoreKey;
@interface ScoreViewController : UIViewController {
int score;
UILabel *label;
}
@property (nonatomic, assign) int score;
@property (nonatomic, retain) IBOutlet UILabel *label;
- (void)readState;
- (void)saveState;
- (IBAction)didTap;
@end
// dictionary keys
NSString *const scScoreKey = @"State";
@implementation ScoreViewController
@synthesize score, label;
- (IBAction)didTap {
score++;
label.text = [NSString stringWithFormat:@"%d", score];
}
- (void)readState {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
score = [defaults integerForKey:scScoreKey]; // zero if not found
NSLog(@"readState: score=%d", score);
}
- (void)saveState {
NSLog(@"saveState: score=%d", score);
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:score forKey:scScoreKey];
}
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad: score=%d", score);
label.text = [NSString stringWithFormat:@"%d", score];
}
- (void)dealloc {
[label release];
[super dealloc];
}
@end
Xcode Scoring System