无法识别的选择器发送到类。 '在ClientViewController.mm中调用方法'

时间:2013-03-13 00:06:03

标签: ios objective-c unrecognized-selector

我正在尝试在 ClientViewController.mm 类中调用方法并继续收到此错误: 由于未捕获的异常而终止应用

'NSInvalidArgumentException', reason: '+ [ClientViewController TestMethod]: 
 unrecognized selector sent to class 

我有另一个实现接口的类。

void AppleRecognitionStatusObserver::onRecognitionStatusChanged
                                       (RecognitionStatus newStatus) {
    switch(newStatus) {
        case kInProgress:
            [ClientViewController TestMethod];
            break;
        ....etc
    }
}

如何从另一个C ++类调用 ClientViewController 方法?

客户端视图controller.h

//imports UIKit etc
@interface ClientViewController : UIViewController <AVAudioRecorderDelegate>{
    IBOutlet UIButton *recoButton;
    // some other buttons
}
@end

// and the .mm
//#imports....
@interface ClientViewController ()
@end
@implementation ClientViewController
-(void)TestMethod{
    outLabel.text = @"Has been called!";
}

1 个答案:

答案 0 :(得分:0)

您应确保ClientViewController.m具有testMethod的方法实现 像这样:

+(void)TestMethod {
    // some code here
}

您的ClientViewController.h应该具有匹配的标头声明,如下所示:

+(void)TestMethod;

如果你需要一个实例方法,而不是类方法,请确保将+更改为 - 如下所示:

-(void)TestMethod {
    // some code here
}

-(void)TestMethod;