2010-12-16 20 views
0

現在試圖處理這個問題已經兩天了。 我的應用程序有一個文本字段和一個按鈕。當文本字段爲空時,按下按鈕使我穩定運行,並在按下按鈕後收到警報。 但是,如果我在文本字段中鍵入內容,然後按下按鈕 - 它崩潰。 我在調試控制檯中可以看到的是: 「程序接收信號:」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在文本字段,以便鍵盤將退出...

我在做什麼錯了?

回答

0

在調試器(「構建和調試」)下運行。

調試窗口(cmd-shift-Y)將顯示發生問題的位置的回溯,並讓您在該位置檢查變量。

1

msg字符串是不變的,釋放它可能會導致異常。

相關問題