0

我有一个主视图,我使用以下代码向其中添加了一个子视图:

-(IBAction)launchPage:(id) sender
{
    ActivityViewController *activityViewController = [[ActivityViewController alloc] initWithNibName:@"ActivityViewController" bundle:nil];
    activityViewController.view.frame = CGRectMake(183, 104, 841, 573);
    activityViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"activity_bckgrnd.png"]];
    [self.view addSubview:activityViewController.view];    
}

我在这个 xib 文件上有按钮,我正在尝试向其中添加按钮事件。但是,当我在分配后单击按钮IBAction时,我收到一个 EXEC BAD ACCESS 错误

int main(int argc, char *argv[])
{
    @autoreleasepool {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}

任何人都可以让我知道可能是什么错误。我已经为该项目启用了 ARC。

在我添加为子视图的视图控制器的 .h 文件中,我已声明

@property(strong,retain) UIButton *billingAddressChkBox;

在 .m 文件中,IBAction 看起来像

- (IBAction)checkboxButton:(id)sender{

if (checkboxSelected == 0){
    [billingAddressChkBox setSelected:YES];
    checkboxSelected = 1;

} else {
    [billingAddressChkBox setSelected:NO];
    checkboxSelected = 0;
}

}

我启用了僵尸并收到以下消息。

message sent to deallocated instance

我可以知道哪个实例正在从其地址中释放吗?

4

2 回答 2

4

我不得不初始化

ActivityViewController *activityViewController

在头文件中并从 .m 文件中访问它。这解决了这个问题。

于 2012-06-25T11:23:20.153 回答
0

由于您使用的是 ARC,因此您使用strong属性选项而不是 MRCretain属性选项。因此,当您编写时@property(strong,retain) UIButton *billingAddressChkBox;,请删除retain并且我相信它应该可以工作。

希望这可以帮助!

于 2012-06-20T19:59:51.717 回答