我有一个方法:

-(void)pickTheQuiz:(id)sender etat:(int)etatQuiz{
   //i need to get the etatQuiz value here


}


在我的代码中的某个地方,我这样调用上面的方法:

int etat_quiz=4;
[button addTarget:self action:@selector(pickTheQuiz:etat:)withObject:etat_quiz forControlEvents:UIControlEventTouchUpInside];


这样做时,出现错误:

Receiver type UIButton for instance message does not declare a method with selector 'addTarget:action:withObject:forControlEvent


编辑:

-(void)pickTheQuiz:(id)sender etat:(int)etatQuiz{


    NSLog(@"The part number is:%i",((UIControl*)sender).tag);

}

最佳答案

您不能像这样传递参数。相反,您可以将“ etatQuiz”设置为按钮的标记。并可以在选择器中访问它。
例如:

button.tag = etatQuiz;
[button addTarget:self action:@selector(pickTheQuiz:) forControlEvents:UIControlEventTouchUpInside];


-(void)pickTheQuiz:(UIButton *)sender {
   int value  = sender.tag;


}

关于objective-c - 用参数调用选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9716465/

10-09 20:40