web-dev-qa-db-ja.com

Objective-Cオブジェクトのリストセレクタ

私はオブジェクトを持っています、そして私はそれが応答するすべてのセレクタをリストしたいです。これは完全に可能であるはずですが、私はAPIを見つけるのに問題があります。

35
Airsource Ltd

これは実行時C関数に基づく解決策です。

class_CopyMethodListオブジェクトから入手可能なクラスオブジェクトを指定したクラスメソッドのリストを返します。

#import <objc/runtime.h>
 _

[..]

SomeClass * t = [[SomeClass alloc] init];

int i=0;
unsigned int mc = 0;
Method * mlist = class_copyMethodList(object_getClass(t), &mc);
NSLog(@"%d methods", mc);
for(i=0;i<mc;i++)
    NSLog(@"Method no #%d: %s", i, sel_getName(method_getName(mlist[i])));

/* note mlist needs to be freed */
 _
75
diciu