I’m trying to make a word mashing app (just as practice), and I got all the errors worked out in the code. When I go to run the app in the simulator, everything works but the “mash words” button. The app just crashes or freezes when it’s clicked. I think I might have a problem with my outlet and action connections from the nib to the file’s owner. Any feedback would help, thanks.
Header File
#import <UIKit/UIKit.h>
@interface Word_CombinerViewController : UIViewController {
UITextField *word1;
UITextField *word2;
UITextField *display;
UIButton *mashButton;
}
@property (nonatomic, retain) IBOutlet UITextField *word1;
@property (nonatomic, retain) IBOutlet UITextField *word2;
@property (nonatomic, retain) IBOutlet UITextField *display;
@property (nonatomic, retain) IBOutlet UIButton *mashButton;
-(IBAction)textFieldDoneEditing:(id)sender;
-(IBAction)backgroundTap:(id)sender;
-(IBAction)buttonPressed:(id)sender;
@end
Main File
#import "Word_CombinerViewController.h"
@implementation Word_CombinerViewController
@synthesize word1;
@synthesize word2;
@synthesize display;
@synthesize mashButton;
-(IBAction)textFieldDoneEditing:(id)sender {
[sender resignFirstResponder];
}
-(IBAction)backgroundTap:(id)sender {
[word1 resignFirstResponder];
[word2 resignFirstResponder];
}
-(IBAction)buttonPressed:(id)sender {
NSString *newText = [word1.text stringByAppendingString:word2.text];
display.text = newText;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
}
- (void)dealloc {
[word1 release];
[word2 release];
[display release];
[mashButton release];
[super dealloc];
}
@end
Also here is a screenshot of the connection from the button to the action in the files owner http://i551.photobucket.com/albums/ii448/ktmock/Screenshot2011-03-29at83131PM.png
If you need anything else lemme know.
It might help to put breakpoints in your buttonPressed method to know if it even makes it that far and on which line it’ll break.
You might not have set up your referencing outlets. Control-click on File’s Owner and drag the blue arrow to your different components and, in the popup window, select the object in your ViewController to link it to. For example, the button should link up to mashButton, one textfield to word1, another to word2, etc.