我正在尝试在 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!";
}
答案 0 :(得分:0)
您应确保ClientViewController.m具有testMethod的方法实现 像这样:
+(void)TestMethod {
// some code here
}
您的ClientViewController.h应该具有匹配的标头声明,如下所示:
+(void)TestMethod;
如果你需要一个实例方法,而不是类方法,请确保将+更改为 - 如下所示:
-(void)TestMethod {
// some code here
}
和
-(void)TestMethod;