为什么我无法将新实例的委托设置为自我?

问题描述:

我有一个uipickerview,它出现在一个ActionSheet中。所有这些都在“MultiPicker”类中。我从 “FirstViewController” 创建一个新的实例是这样的:为什么我无法将新实例的委托设置为自我?

multiPicker *multiPic = [[multiPicker alloc]init]; 
multiPic.delegate = self; 

[multiPic action:aRunIndex]; 

而且里面的 “multiPicker”,在 “行动:”

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:title   delegate:otroDelegate cancelButtonTitle:nil destructiveButtonTitle:@"Cancel" otherButtonTitles:@"Done", nil]; 

UIPickerView *pickerView = [[[UIPickerView alloc] init] autorelease]; 
pickerView.tag = 101; 
pickerView.delegate = self; 
pickerView.dataSource = self; 
pickerView.showsSelectionIndicator = YES; 

[actionSheet addSubview:pickerView]; 
[actionSheet showInView:self.view]; 

我需要 “FirstViewController” 时MultiPicker完成,这样我就可以更新FirstView中的表格。我尝试将一个新的代理设置为MultiPicker,它在完成时告诉FirstView。但是第一段代码中的“multipic.delegate = self”指令导致应用程序崩溃,并显示“终止由于未捕获的异常”。

如果我只是把所有的“MultiPicker”代码FirstViewController类中,而不是在一个单独的一个,阻塞,当我试图推动从不同按钮的动作片留“取消”

任何想法?

感谢ü

  1. 确保您的类的“自我”实现需要协议
  2. 协议有可选和必需的方法,你必须实现你的类“自我”代表“协议”的所有必需的方法