プロジェクトで使用されているクラスのリストを取得するエレガントな方法はありますか?
私はObjective-Cのすべてのクラスを取得することを認識しており、クラスを除外するobjc_getClassList(...)
ために使用することを避けようとしています.class_conformsToProtocol
ありがとう。
プロジェクトで使用されているクラスのリストを取得するエレガントな方法はありますか?
私はObjective-Cのすべてのクラスを取得することを認識しており、クラスを除外するobjc_getClassList(...)
ために使用することを避けようとしています.class_conformsToProtocol
ありがとう。
Xcode でCmd+2を押してシンボル ナビゲーターを開き、C
左下隅のアイコンを押してクラスでフィルター処理します。
アイコンの横にあるドキュメント アイコンを押すと、さらにフィルターをかけることができC
ます。結果には、プロジェクトで定義されたクラスのみが含まれます。これは、クリックする必要があるボタンが赤でマークされた画像です。
このコードは、指定したクラス プレフィックスで始まるすべてのクラスをランタイムで検索し、それらの名前を返します (入力されていますが、コンパイルされていないことに注意してください)。
NSArray *AllClassNamesInRuntimeWithPrefix(NSString *myClassPrefix) {
NSMutableArray *retObj = [NSMutableArray array];
int nClasses = objc_getClassList(NULL, 0);
if (nClasses > 0) {
Class allClasses[] = malloc( nClasses * sizeof(Class) );
nClasses = objc_getClassList(allClasses, nClasses );
int i;
for (i = 0; i < nClasses; i++) {
NSString *thisClassName = NSStringFromClass( allClasses[i] );
if ([thisClassName hasPrefix:myClassPrefix]) {
[retObj appendObject:thisClassName];
}
}
free( allClasses );
}
return [NSArray retObj];
}
ランタイムには「プロジェクト」のパターンがなく、クラスは実行可能ファイルまたはフレームワークに存在し、いつでもロードできるため、プロジェクト内のすべてのクラスを実行時に検索するのは少し難しいです。