uiactionsheet崩溃

时间:2012-10-16 18:48:46

标签: objective-c ios uiactionsheet

我的行动表如下:

- (void)Method1 {
    UIActionSheet *photoSourceSheet=[[UIActionSheet alloc]
                                     initWithTitle:@"Options"
                                     delegate:self
                                     cancelButtonTitle:@"Exit"
                                     destructiveButtonTitle:nil
                                     otherButtonTitles:@"opt1",@"opt2", @"opt3", nil];
    photoSourceSheet.tag=1;
    photoSourceSheet.delegate=self;
    [photoSourceSheet showInView:self.view];
}

- (void)Method2 {
    UIActionSheet *photoSourceSheet1=[[UIActionSheet alloc]
                                      initWithTitle:@"Select Video"
                                      delegate:self
                                      cancelButtonTitle:@"Cancel"
                                      destructiveButtonTitle:nil
                                      otherButtonTitles:@"Take New Video", @"Choose Existing Video", nil];
    //   photoSourceSheet.delegate=self;
    photoSourceSheet1.tag=2;
    photoSourceSheet1.delegate=self;
    [photoSourceSheet1 showInView:self.view];
}

然后在我的代表中我有:

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex: NSInteger)buttonIndex {
    if (actionSheet.tag==1) {
        if (buttonindex==2) {
            [self method2];
        }
    } else if (actionSheet.tag==2) {
        // some code
    }
}

为第一个操作表调用我的委托方法,即photoSourceSheet,但不是photoSourceSheet1。 我需要做些什么特别的事情,比如手动解雇表格吗? 我的第二个UIActionSheet(photoSourceSheet1)出现了,但是一旦我在工作表上选择了一个选项,它就会崩溃应用程序。 它会抛出EXEC_BAD_ACCESS

1 个答案:

答案 0 :(得分:1)

上述代码没有任何问题。 EXEC_BAD_ACCESS基本上是由于内存管理不良。有时您无意中删除了正在使用的对象。 尝试启用Zombies它会告诉你确切的问题区域。

步骤:转到编辑方案        内存管理        选中启用Zombie Objects

选项