0

我试图在我的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方法?

客户端视图控制器.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!";
}
4

1 回答 1

0

您应该确保您的 ClientViewController.m 具有 testMethod 的方法实现,如下所示:

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

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

+(void)TestMethod;

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

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

-(void)TestMethod;
于 2013-03-13T00:12:53.360 回答