Iphone 关于Objective-C选择器的问题;我可以使用参数吗?如何使用?
我试图使用带参数的选择器,但在使用过程中失败。我来自C/++,选择器有点混乱。我有以下代码:Iphone 关于Objective-C选择器的问题;我可以使用参数吗?如何使用?,iphone,objective-c,methods,cocos2d-iphone,selector,Iphone,Objective C,Methods,Cocos2d Iphone,Selector,我试图使用带参数的选择器,但在使用过程中失败。我来自C/++,选择器有点混乱。我有以下代码: playItem = [CCMenuItemLabel itemWithLabel:playLabel target:self selector:@selector(goToScene:)argumentHere]; 我如何以这种方式将参数传递给方法 提前谢谢:你不能。选择器只指定要调用的方法,而不指定要传递的参数 您可以做的是检查goToScene:方法中的sender参数。它将是执行操作的元素(在
playItem = [CCMenuItemLabel itemWithLabel:playLabel target:self selector:@selector(goToScene:)argumentHere];
我如何以这种方式将参数传递给方法
提前谢谢:你不能。选择器只指定要调用的方法,而不指定要传递的参数 您可以做的是检查
goToScene:
方法中的sender
参数。它将是执行操作的元素(在您的情况下很可能是CCMenuItemLabel
。因此,您可以看到调用了哪个元素(如果您对几个ui元素使用
goToScene:
),并决定使用哪个“参数”
为了区分不同的ui元素,通常使用标记
属性。所以,代码可能看起来像
if ([sender tag] == 1) {
...
} else if ...
若你们不喜欢太多的ifs,那个么查找表就可以了。你们不能。选择器只指定要调用的方法,而不指定要传递的参数 您可以做的是检查
goToScene:
方法中的sender
参数。它将是执行操作的元素(在您的情况下很可能是CCMenuItemLabel
。因此,您可以看到调用了哪个元素(如果您对几个ui元素使用
goToScene:
),并决定使用哪个“参数”
为了区分不同的ui元素,通常使用标记
属性。所以,代码可能看起来像
if ([sender tag] == 1) {
...
} else if ...
如果您不喜欢太多的ifs,查找表将起作用。您是否正在寻找
性能选择器:withObject
?恐怕我不太明白你的问题
Nikita是对的,当您设置选择器时,只需传入描述符名称。稍后在代码中,当您调用该方法时,您将传入任何参数。您是否正在查找
性能选择器:withObject
?恐怕我不太明白你的问题
Nikita是对的,当您设置选择器时,只需传入描述符名称。稍后在代码中,当您调用该方法时,您将传入任何参数。Dang。那好吧。我想知道,因为我认为制作一种方法,然后传递我想切换到的场景,比每个场景制作一种方法更容易。Thanks@epicasian您可以为每个场景创建一个方法,并从中调用具有适当参数的通用方法。Dang。那好吧。我想知道,因为我认为制作一种方法,然后传递我想切换到的场景,比每个场景制作一种方法更容易。Thanks@epicasian您可以为每个场景创建一个方法,并从中调用具有适当参数的通用方法。