Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 无法使用委托_Objective C_Ios_Xcode_Cocoa Touch - Fatal编程技术网

Objective c 无法使用委托

Objective c 无法使用委托,objective-c,ios,xcode,cocoa-touch,Objective C,Ios,Xcode,Cocoa Touch,我对目标c不熟悉,试图掌握学员的方法和用法。目前我有Alertview类,我需要它生成另一个类来调用它的函数。我在appdelegate类中也做到了同样的事情。但我不能用我自己的班级 TableViewController *newControll = (TableViewController*)[UIApplication sharedApplication].delegate; [newControll openSettings

我对目标c不熟悉,试图掌握学员的方法和用法。目前我有Alertview类,我需要它生成另一个类来调用它的函数。我在appdelegate类中也做到了同样的事情。但我不能用我自己的班级

                TableViewController *newControll = (TableViewController*)[UIApplication sharedApplication].delegate;
                [newControll openSettings];
这就是我试图访问我的方法的方式。编译器在newControll中看到了这个方法,但是调用它会得到无法识别的选择器

基本上,我需要从另一个类调用一个已经在前面创建的函数。如果这是一个简单的解决方案,我很抱歉,但我还不能很好地掌握委托和objective-c

也许不是每个人都明白这是我需要做的,所以我会再解释一遍


我有对象
TableViewController
。从内部的这个对象,我调用class
AlertView
来显示一些警报消息。根据警报对话框中的用户交互(密码正常,密码不正常),我需要在我的
TableViewController
中调用方法
openSettings
,或者不调用。那么如何做到这一点呢?

如果您的
TableViewController
不是appdelegate类,您应该使用
TableViewController
的对象来使用方法
openSettings

应该是这样的,

TableViewController *newControll = [[TableViewController alloc] init];
假设您正在移动到新的
alertView
。在
AlertView.h
文件中添加

@property(nonatomic, retain) TableViewController *tableViewController;
在创建新的
alertView
对象时

AlertView *alertView = [[AlertView alloc] init];
//some code..
alertView.tableViewController = self;
现在在您的
AlertView
类中,将其称为

[self.tableViewController openSettings];
使用appdelegate不是这样做的


如果您需要一些iOS教程,。

我不知道您想要什么,但编译器说得很对..)首先-是否确定[UIApplication sharedApplication]。委托不是零?第二个-[UIApplication sharedApplication]。委托可能没有任何选择器openSettings。这将帮助您发布一些代码!!您希望看到哪个部分?尝试了这种方法,但没有正确完成,因为我需要调用先前创建的确切对象,而不是创建新对象并进行调用。newControll在哪里创建?哪个班?你想在哪里调用这个方法?无论如何,我更新了我的答案。我已经更新了我的问题,请看一看,也许它会更清楚我想说什么do@Datenshi,alertview是一个单独的类吗?如果是,请检查我的答案。是的,它按照我的意愿工作。如果我一开始不明白你的答案,我很抱歉。谢谢你的帮助!