Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 目标C:类如何安全地调用全局方法?_Objective C_Button_Callback_Global - Fatal编程技术网

Objective c 目标C:类如何安全地调用全局方法?

Objective c 目标C:类如何安全地调用全局方法?,objective-c,button,callback,global,Objective C,Button,Callback,Global,我已尝试并得到“SIGBRT”异常。 在Global.m中,我有methodBGlobal() 在ClassA中,为了使用methodGlobal(),我加入了Global.h。 ClassA.methodA()中有methodGlobal() 然后我在Global.m中有一个按钮。因为我不知道如何在Global.m中正确调用methodGlobal()。因此,我通过类实例调用methodGlobal() [mybutton addTarget:ClassA instance action:@s

我已尝试并得到“SIGBRT”异常。 在Global.m中,我有
methodBGlobal()

在ClassA中,为了使用
methodGlobal()
,我加入了Global.h
ClassA.methodA()
中有
methodGlobal()

然后我在Global.m中有一个按钮。因为我不知道如何在Global.m中正确调用
methodGlobal()
。因此,我通过类实例调用
methodGlobal()

[mybutton addTarget:ClassA instance action:@selector(methodA:) ...];
它不起作用。我得到了“SIGBRT”异常,我不知道是否调用了ClassA.methodA()中的methodGlobal()?我想工作

试试这个:

[mybutton addTarget:[ClassA class] action:@selector(methodA:) ...];

您可以通过编写类方法,如<代码> +(无效)doActudio<代码>,现在您可以使用类名,例如“代码> [CordNo.doActhy] < /Calp>

> p>这里需要考虑的两件事。

  • 如果方法是类方法,那么目标应该是[ClassA class]
  • 如果方法签名不包含任何参数,例如,-(void)methodA那么,@选择器中不应包含冒号(:”)。因此,选择器应该是@selector(methodA)
  • 最后,
    addTarget:
    方法应该如下所示:

    [mybutton addTarget:[ClassA class] action:@selector(methodA) ...];
    
    参考文献:

  • 来自iOS的Cocoa应用程序能力
  • 来自《可可基础指南》

  • 如何声明
    methodA
    ?它包括任何参数吗?@EmptyStack methodA是一个没有参数的void函数-(void)methodA(){methodGlobal();}如果是,那么@selector中不应该有
    ,它应该是
    [mybutton addTarget:ClassA实例操作:@selector(methodA)…]@EmptyStack啊。。。我将在明天试穿,因为这个项目正在进行中。但我认为这行不通。如果我改正了,我已经试过了。我知道你说了什么。但它不起作用。我想我的问题不清楚,对不起。我编辑了我的问题,希望得到好的答案soon@EmptyStack你救了我的世界!但我仍然不理解代码的逻辑。如果你有很好的网络教程,请介绍给我。我只能在公司里做Objective-C,因为我还没有足够的钱买我自己的mac电脑。无论如何,真的谢谢你。我可以再问你一个问题吗。是否可以设置全局按钮(不在类中)直接激活全局方法?@So\u CLOSE\u但到目前为止,仍然是。您可以设置它。@EmptyStack,您能解释一下如何将全局按钮设置为活动全局方法吗?“我不知道如何设置全局按钮的目标,因为self是不可变的。@EmptyStack,我提出了一个新问题,因为它会很长。”。谢谢你的帮助。