gpt4 book ai didi

objective-c - 为什么我不能将新实例的委托(delegate)设置为 self?

转载 作者:行者123 更新时间:2023-12-03 17:26:48 25 4
gpt4 key购买 nike

我有一个 uipickerview,它与 ActionSheet 一起出现。所有这些都在“MultiPicker”类中。我以这种方式从“FirstViewController”创建一个新实例:

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

[multiPic action:aRunIndex];

在“multiPicker”内,在“action:”中

    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];

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

如果我只是将所有“MultiPicker”代码放在 FirstViewController 类中,而不是单独的代码中,则当我尝试按下与“取消”不同的按钮时,操作表将保持阻塞状态

有什么想法吗?

谢谢你

最佳答案

  1. 确保您的类“self”实现了 require 协议(protocol)
  2. 协议(protocol)具有可选和必需的方法,您必须在“self”类中实现委托(delegate)“协议(protocol)”的所有必需方法

关于objective-c - 为什么我不能将新实例的委托(delegate)设置为 self?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com