我正在尝试做这样的事情:
CCMenuItemImage *BuyButton = [CCMenuItemImage itemWithNormalImage:@"Buy.jpg" selectedImage:@"Buy.jpg" target:self selector:@selector(Function:cnt)];
由于某种原因,我无法将任何参数传递给函数'Function'。我花了很多时间研究这个,但我找到的唯一解决方案是使用对象ID,我宁愿不进入。这个按钮处于一个循环中,所以我不能只有另一个名为thats从其他地方获取参数的函数。
答案 0 :(得分: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];
}];
答案 1 :(得分: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:)