无法识别的选择器发送到实例0x

时间:2013-06-28 19:13:01

标签: objective-c

运行上述功能时的错误日志:

2013-06-28 21:10:32.435 B3 Controller[68665:c07] Logged knob : 1
2013-06-28 21:10:32.436 B3 Controller[68665:c07] -[ViewController rotaryKnobDidChange]: unrecognized selector sent to instance 0x71721f0
2013-06-28 21:10:32.437 B3 Controller[68665:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController rotaryKnobDidChange]: unrecognized selector sent to instance 0x71721f0'

感谢您的帮助。

这段代码:

... - (IBAction)rotaryKnobDidChange:(id)sender;

- (IBAction)rotaryKnobDidChange:(RotaryKnob*)sender
{
    NSLog(@"Logged knob : %ld",(long)(sender.tag));
    switch(sender.tag)
    {
        case 0:
            self.driveLabel.text = [NSString stringWithFormat:@"%.0f%%", self.DriveKnob.value*100];
            break;
        case 1:
            self.edgeLabel.text = [NSString stringWithFormat:@"%.0f%%", self.EdgeKnob.value*100];
            break;
        case 2:
            self.reverbLabel.text = [NSString stringWithFormat:@"%.0f%%", self.ReverbKnob.value*100];
            break;
    }
}

1 个答案:

答案 0 :(得分:2)

根据此错误,有人试图拨打[viewController rotaryKnobDidChange]而不是[viewController rotaryKnobDidChange:self]。冒号是名称的一部分 - 你不能把它遗漏 - 并且参数不是可选的。