Objective c 目标C:类如何安全地调用全局方法?
我已尝试并得到“SIGBRT”异常。 在Global.m中,我有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
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>这里需要考虑的两件事。addTarget:
方法应该如下所示:
[mybutton addTarget:[ClassA class] action:@selector(methodA) ...];
参考文献:
如何声明
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,我提出了一个新问题,因为它会很长。”。谢谢你的帮助。