是否有一種優雅的方式來獲取項目中使用的類的列表?項目中使用的類
我知道objc_getClassList(...)
它獲取Objective-C中的所有類,我試圖避免使用class_conformsToProtocol
來過濾類。
謝謝。
是否有一種優雅的方式來獲取項目中使用的類的列表?項目中使用的類
我知道objc_getClassList(...)
它獲取Objective-C中的所有類,我試圖避免使用class_conformsToProtocol
來過濾類。
謝謝。
在Xcode中,按Cmd的 + 打開符號導航並按下左下角的圖標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];
}
在運行時在搜索項目中的每一個類是有點苛求的,因爲運行時沒有一個格局「工程」,類可以在可執行文件存在或者在框架中,並且可以隨時加載。
那麼,你可以隨時查看構建中的.m文件列表。 – 2013-04-20 01:51:35
通過「get」,你想查看項目中的類列表,還是想在運行時使用'NSArray',它包含項目中的所有類? – iluvcapra 2013-04-20 02:59:13
我知道顯示項目中的類的類視圖。我怎樣才能使用代碼並且不用在我的類前加上任何東西?所以像objc_getClassList,但只拿起我的項目中的類。 – Komposr 2013-04-20 16:28:45