2

我正在尝试做这样的事情:

CCMenuItemImage *BuyButton = [CCMenuItemImage itemWithNormalImage:@"Buy.jpg" selectedImage:@"Buy.jpg" target:self selector:@selector(Function:cnt)];

出于某种原因,我无法将任何参数传递给函数'Function'。我花了很多时间研究这个,但我发现的唯一解决方案是使用对象 ID,我宁愿不参与。这个按钮在一个循环中,所以我不能只使用另一个函数,即从其他地方获取参数。

4

2 回答 2

2

+ (id)itemWithNormalImage:selectedImage:target:selector:不支持带参数的选择器。如果要执行带参数的选择器,则可以+ (id)itemWithNormalImage:selectedImage:block:改用。在块中只需运行您想要的任何代码:

__weak typeof(self) weakSelf = self;
[CCMenuItemImage itemWithNormalImage:@"Buy.jpg" selectedImage:@"Buy.jpg" block:^(id sender) {
    [weakSelf methodWithParameterOne:one two:two];
}];
于 2013-03-23T05:02:32.247 回答
0

您不能通过selectors冒号发送参数。

典型的例子是:

[self performSelector:@selector(myMethodWithObject:) withObject:myObject];

哪个电话

- (void)myMethodWithObject:(id)object;

同样,您需要像上面那样做,可能是:

CCMenuItemImage *BuyButton = [CCMenuItemImage itemWithNormalImage:@"Buy.jpg" selectedImage:@"Buy.jpg" target:self selector:@selector(Function:) withObject:cnt];

您需要通过以下方式更改功能:

-(void)FunctionWithCnt:(<type>)cntObject;

然后使用@selector(FunctionWithCnt:)

于 2013-03-23T04:29:27.553 回答