現在試圖處理這個問題已經兩天了。 我的應用程序有一個文本字段和一個按鈕。當文本字段爲空時,按下按鈕使我穩定運行,並在按下按鈕後收到警報。 但是,如果我在文本字段中鍵入內容,然後按下按鈕 - 它崩潰。 我在調試控制檯中可以看到的是: 「程序接收信號:」EXC_BAD_ACCESS「。」 沒有堆棧細節或任何東西。我的相關代碼: 頭文件:由於「程序接收信號:」EXC_BAD_ACCESS「,無法處理按鈕操作。」
#import <UIKit/UIKit.h>
@interface SpyTextViewController : UIViewController {
int sliderSpeed;
IBOutlet UITextField *textInput;
}
@property (nonatomic, retain) IBOutlet UITextField *textInput;
- (IBAction)sliderChanged:(id)sender;//speed of text show changed
- (IBAction)textFieldDoneEditing:(id)sender;//dor 'DONE' on keyboard
- (IBAction)backgroundTap:(id)sender;//for handling tapping on background
- (IBAction)textEmButtonPressed:(id)sender;
@end
------ .m文件:
#import "SpyTextViewController.h"
#import "txtViewController.h"
@implementation SpyTextViewController
@synthesize textInput;
- (IBAction)sliderChanged:(id)sender
{
UISlider *slider = (UISlider *)sender;
sliderSpeed = (int)(slider.value + 0.5f);//setting the speed determinned by the usr in slider
}
- (IBAction)textFieldDoneEditing:(id)sender
{
[sender resignFirstResponder];
NSLog(@"our text input is %@", textInput.text);
}
- (IBAction)backgroundTap:(id)sender
{
[textInput resignFirstResponder];
}
- (IBAction)textEmButtonPressed:(id)sender
{
NSLog(@"our text input length is %@", [textInput.text length]);
/*
if ([textInput.text length])
{
NSLog(@" inside the tvc init ");
//create the sub MVC
txtViewController *tvc = [[txtViewController alloc] init];
tvc.scrollSpeed = sliderSpeed;
tvc.scrollTxt = textInput.text;
[self.navigationController pushViewController:tvc animated:YES];
[tvc release];
//run text using speed;
}
else */
{
//tell 'em to input text with some pop-up
NSString *msg = nil;
msg = @"Write text to transmit";
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Forgot something?"
message:msg
delegate:self
cancelButtonTitle:@"Back"
otherButtonTitles:nil];
[alert show];
[alert release];
[msg 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 {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[textInput release];
[super dealloc];
}
@end
上的.xib文件中的一些細節: 的操作方法是通過「修改內部」附加到文件的所有者。 文本字段有它的出口連接到它也(我也打印文本的內容,它工作正常)。我也改變了視圖的類標識爲UICpntrol,所以我可以支持事件敲擊視圖,而輸入TXT在文本字段,以便鍵盤將退出...
我在做什麼錯了?