1

世界!Objective-C メソッドが属するスーパークラスを決定するために libclang を使用しようとしています。インスタンス メソッド (CXCursor_ObjCInstanceMethodDecl) を表すカーソルがあります。カーソルの親を取得すると、種類 CXCursor_ObjCImplementationDecl のカーソルが取得されます。メソッドのスーパークラスを判別するには、この最後のカーソルからインターフェイス カーソルを取得できる必要があります。これを行う方法はありますか?

4

1 に答える 1

2

clang_getCanonicalCursor()宣言のカーソルを呼び出すと、@implementation宣言のカーソルが返されます@interface。このカーソルの子にアクセスすると、そのスーパークラス参照にアクセスできます。

メソッドのカーソルで使用clang_getOverriddenCursors()して、スーパークラス、プロトコル、またはカテゴリから別のものをオーバーライドしているかどうかを判断することもできます。

于 2014-05-03T17:48:04.860 に答える