2011-11-22 7 views
1

ボタンを押すとボタンアクションを呼び出すときに "EXC_BAD_ACCESS"が表示されます。xcodeを使用した不正なアクセス例外4.2

#import "TestViewController.h" 

@implementation TestViewController 

- (id)init 
{ 
    self = [super init]; 
    if (self) 
    { 
     [email protected]"IOS5 and Xoced 4.2"; 

     UIButton *button=[[UIButton alloc]initWithFrame:CGRectMake(9,6,100,100)]; 
     button.backgroundColor=[UIColor greenColor]; 
     [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside]; 
     [self.view addSubview: button]; 


    } 
    return self; 
} 
-(void)viewWillAppear:(BOOL)animated 
{ 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithTitle:@"Add" 
                   style:UIBarButtonItemStyleBordered 
                   target:self 
                   action:@selector(addAction)]; 
    self.navigationItem.rightBarButtonItem = addButton; 

} 
-(void)buttonAction 
{ 
    printf("Hi i am in buttonAction method"); 

} 

-(void)addAction 
{ 
    printf("Hi i am in addAction method"); 

} 

私はARCは、このプロジェクトでをenbled使用。 UIBarButtonItemまたはUIButtonをタッチすると、以下のエラーが発生します。

TestXcode4 [2470:207] - [__ NSCFString addAction]:インスタンス0x6827b00

に送信され、認識されないセレクター はこのうち私を助けてください。

+0

あなたの.hファイルにUIBarButtonItem * addButtonを宣言してもう一度試してください – Maulik

+0

あなたはおそらくコントローラがリリースされているでしょう。このView Controllerをどのように表示していますか? – joerick

+0

@Maulik: 'addSubview:'と 'rightButtonItem:'ボタンが呼び出されたときに所有権を取らないのですか? – trojanfoe

答えて

1

このビューコントローラをウィンドウに追加すると、addsubview呼び出し後にそのコントローラを解放しません。ウィンドウはそのView Controllerを保持しないためです。

0

プロジェクト設定でARCを無効にするだけです。それは正常に動作しています....

関連する問題