2010-12-16 18 views
0

今この問題を2日間処理しようとしました。 私のアプリには、テキストフィールドとボタンがあります。テキストフィールドが空のとき、ボタンを押すと安定した走行ができ、ボタンを押すと警告が表示されます。 しかし、テキストフィールドに何かを入力してからボタンを押すとクラッシュします。 デバッグコンソールに表示されるのは、 "プログラム受信信号:" 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ファイル上: アクションメソッドがあります「内部のタッチアップ」を介してファイルの所有者にアタッチされます。 テキストフィールドにはコンセントが接続されています(テキストも表示されていますが、正常に動作します)。また、ビューのクラスIDをUICpntrolに変更したので、txtを入力するときにビューをタップするイベントをサポートできますキーボードが終了するようにテキストフィールドに入力します。

何が間違っていますか?

答えて

0

デバッガ(「ビルドとデバッグ」)で実行します。

デバッガウィンドウ(cmd-shift-Y)は、問題が発生した場所のトレースバックを表示し、その時点で変数を調べることができます。

1

msg文字列は定数であり、それを解放すると例外が発生する可能性があります。

関連する問題