世界!Objective-C メソッドが属するスーパークラスを決定するために libclang を使用しようとしています。インスタンス メソッド (CXCursor_ObjCInstanceMethodDecl) を表すカーソルがあります。カーソルの親を取得すると、種類 CXCursor_ObjCImplementationDecl のカーソルが取得されます。メソッドのスーパークラスを判別するには、この最後のカーソルからインターフェイス カーソルを取得できる必要があります。これを行う方法はありますか?
1 に答える
2
clang_getCanonicalCursor()宣言のカーソルを呼び出すと、@implementation宣言のカーソルが返されます@interface。このカーソルの子にアクセスすると、そのスーパークラス参照にアクセスできます。
メソッドのカーソルで使用clang_getOverriddenCursors()して、スーパークラス、プロトコル、またはカテゴリから別のものをオーバーライドしているかどうかを判断することもできます。
于 2014-05-03T17:48:04.860 に答える