本文介绍了将参数传递给Objective-C中的选择器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的功能看起来像这样

-(void) doTransition:(id)sender withID:(int) n

如何将int n传递给选择器,

How do I pass int n to selector,

target:self selector:@selector(doTransition:)withID:3

这不起作用

请帮助
谢谢

推荐答案

简短的回答是你没有。像performSelector:这样的方法被设置为将NSObjects作为参数传递,而不是标量值。

The short answer is that you don't. methods like performSelector: are set up to pass NSObjects as parameters, not scalar values.

有一个方法performSelector:withObject:withObject:它将调用一个带有2个对象参数的方法。

There is a method performSelector:withObject:withObject: that will invoke a method with 2 object parameters.

您可以通过创建NSInvocation来触发任何类型参数的方法,但这是一项相当多的工作,并且有点难以弄清楚如何去做。

You can trigger a method with any type of parameters by creating an NSInvocation, but it's a fair amount of work, and a little tricky to figure out how to do it.

在你的情况下,重构你的方法以将ID参数作为NSNumber对象会更简单。

In your case it would be simpler to refactor your method to take the ID parameter as an NSNumber object.

这篇关于将参数传递给Objective-C中的选择器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 07:01