2012-02-22 45 views
1

我是ARC新手,我一直在玩它不到一个星期。我想要做的是非常基本的。我有一个视图控制器,显示一个按钮。当我点击按钮时,需要调用相应的选择器。但是,使用ARC时,应用程序会崩溃并显示EXC_BAD_ACCESS消息。下面是我的MainViewControllerARC过早释放ViewController

- (void)loadView 
{ 
    [super loadView]; 
    UIButton *testButton=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [testButton setFrame:CGRectMake(80,50,160,50)]; 
    [testButton setTitle:@"Click Me" forState:UIControlStateNormal]; 
    [testButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

    [self.view addSubview:testButton]; 
} 

-(void)buttonClicked:(id)sender 
{ 
    NSLog(@"Button Clicked"); 
} 

我启用了僵尸的对象,是能够找到的调试日志

2012-02-21 22:46:00.911 test[2601:f803] *** -[MainViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x6b4bba0 

综观上述消息以下消息的代码,它在我看来,ARC是过早释放我的MainViewController。 我不知道我在做什么错在这里。请让我知道如果我失去了一些东西。

在此先感谢

+3

没有代码如何初始化VC,这是不可能的。我想你只是没有很强的参考。 – 2012-02-22 06:56:21

回答

10

请使用关键

@property (strong, nonatomic) MainViewController *mvc; 
+0

@ user1225102:这很可能是最真实的答案。如果没有,那么我们需要看到更多的代码。 – 2012-02-22 08:26:23

+0

谢谢你的朋友。这工作! – cybervedaa 2012-02-23 05:31:34

+0

这也解决了我的问题,但是什么原因导致这个问题!!!! – 2014-04-10 12:13:10