我有一个工作表,如下所示:
- (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
最佳答案
上面的代码没有错。
EXEC_BAD_ACCESS基本上是由于内存管理不良所致。有时您无意中删除了正在使用的对象。
尝试启用Zombies,它将告诉您确切的问题区域。
步骤:进入编辑方案
内存管理
选中启用僵尸对象选项
关于objective-c - uiactionsheet崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12921460/