Код:
//ViewController.h
@interface ViewController : UIViewController
@end
//ViewController.m
@implementation ViewController
- (void)viewDidLoad {
[self notExistMethod];//the method don't exist!
}
@end
RecursiveASTVisitor
bool VisitObjCMessageExpr(ObjCMessageExpr *messageExpr) {
string selectorName = messageExpr->getSelector().getAsString();
cout << "message selector:" << selectorName << endl;
return true;
}
Я получаю ошибку:
message selector::respondsToSelector:
message selector::currentDevice
message selector::userInterfaceIdiom
message selector::currentDevice
/Users/fenglihai/Desktop/Demo/Demo/ViewController.m:25:11: error: no visible @interface for 'SubViewController' declares the selector
'notExistMethod'
[self notExistMethod];//the method don't exist!
~~~~ ^~~~~~~~~~~~~~
message selector::respondsToSelector:
message selector::currentDevice
message selector::userInterfaceIdiom
message selector::currentDevice
message selector::existMethod
1 error generated.
Error while processing /Users/fenglihai/Desktop/Demo/Demo/ViewController.m.
Моя проблема заключается в том, что при возникновении ошибки компиляции в мой код, то есть я вызываю несуществующий метод [self notExistMethod];
Однако я все еще хочу захватить это выражение сообщения в обратном вызове bool VisitObjCMessageExpr (ObjCMessageExpr * messageExpr)
. На самом деле, сообщение не перезвонило. Итак, что мне делать?