/* I'm working on the app from Chapter 10 of Beginning iPhone Development. I've checked over the code several times and can't see anything wrong. I've Complied and Ran the app with no errors or warnings from xCode, but the app crashes before opening. Can you spot anything off??*/
/*in MainViewController.h*/
//
// MainViewController.h
// 10 AppSettings
//
// Created by Amber Weinberg on 9/13/10.
// Copyright __MyCompanyName__ 2010. All rights reserved.
//
#import "FlipsideViewController.h"
#define kUsernameKey @"username"
#define kPasswordKey @"password"
#define kProtocolKey @"protocol"
#define kWarpDriveKey @"warp"
#define kWarpFactorKey @"warpFactor"
#define kFavoriteTeaKey @"favoriteTea"
#define kFavoriteCandyKey @"favoriteCandy"
#define kFavoriteGameKey @"favoriteGame"
#define kFavoriteExcuseKey @"favoriteExcuse"
#define kFavoriteSinKey @"favoriteSin"
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
UILabel *usernameLabel;
UILabel *passwordLabel;
UILabel *protocolLabel;
UILabel *warpDriveLabel;
UILabel *warpFactorLabel;
UILabel *favoriteTeaLabel;
UILabel *favoriteCandyLabel;
UILabel *favoriteGameLabel;
UILabel *favoriteExcuseLabel;
UILabel *favoriteSinLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *usernameLabel;
@property (nonatomic, retain) IBOutlet UILabel *passwordLabel;
@property (nonatomic, retain) IBOutlet UILabel *protocolLabel;
@property (nonatomic, retain) IBOutlet UILabel *warpDriveLabel;
@property (nonatomic, retain) IBOutlet UILabel *warpFactorLabel;
@property (nonatomic, retain) IBOutlet UILabel *favoriteTeaLabel;
@property (nonatomic, retain) IBOutlet UILabel *favoriteCandyLabel;
@property (nonatomic, retain) IBOutlet UILabel *favoriteGameLabel;
@property (nonatomic, retain) IBOutlet UILabel *favoriteExcuseLabel;
@property (nonatomic, retain) IBOutlet UILabel *favoriteSinLabel;
- (void)refreshFields;
- (IBAction)showInfo:(id)sender;
@end
/*In MainViewController.m*/
//
// MainViewController.m
// 10 AppSettings
//
// Created by Amber Weinberg on 9/13/10.
// Copyright __MyCompanyName__ 2010. All rights reserved.
//
#import "MainViewController.h"
@implementation MainViewController
@synthesize usernameLabel;
@synthesize passwordLabel;
@synthesize protocolLabel;
@synthesize warpDriveLabel;
@synthesize warpFactorLabel;
@synthesize favoriteTeaLabel;
@synthesize favoriteCandyLabel;
@synthesize favoriteGameLabel;
@synthesize favoriteExcuseLabel;
@synthesize favoriteSinLabel;
- (void)refreshFields {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
usernameLabel.text = [defaults objectForKey:kUsernameKey];
passwordLabel.text = [defaults objectForKey:kPasswordKey];
protocolLabel.text = [defaults objectForKey:kProtocolKey];
warpDriveLabel.text = [defaults objectForKey:kWarpDriveKey];
warpFactorLabel.text = [[defaults objectForKey:kWarpFactorKey] stringValue];
favoriteTeaLabel.text = [defaults objectForKey:kFavoriteTeaKey];
favoriteCandyLabel.text = [defaults objectForKey:kFavoriteCandyKey];
favoriteGameLabel.text = [defaults objectForKey:kFavoriteGameKey];
favoriteExcuseLabel.text = [defaults objectForKey:kFavoriteExcuseKey];
favoriteSinLabel.text = [defaults objectForKey:kFavoriteSinKey];
}
- (void)viewDidAppear:(BOOL)animated {
[self refreshFields];
[super viewDidAppear:animated];
}
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller {
[self refreshFields];
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)showInfo:(id)sender {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc. that aren't in use.
}
- (void)viewDidUnload {
self.usernameLabel = nil;
self.passwordLabel = nil;
self.protocolLabel = nil;
self.warpDriveLabel = nil;
self.warpFactorLabel = nil;
self.favoriteTeaLabel = nil;
self.favoriteCandyLabel = nil;
self.favoriteGameLabel = nil;
self.favoriteExcuseLabel = nil;
self.favoriteSinLabel = nil;
[super viewDidUnload];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)dealloc {
[usernameLabel release];
[passwordLabel release];
[protocolLabel release];
[warpDriveLabel release];
[warpFactorLabel release];
[favoriteTeaLabel release];
[favoriteCandyLabel release];
[favoriteGameLabel release];
[favoriteExcuseLabel release];
[favoriteSinLabel release];
[super dealloc];
}
@end