2011-11-18 11 views

回答

8

下面是打印所有UIView子類名稱的代碼:(如何獲得運行時可用的所有類的列表,可以找到here)。還要注意,這段代碼將只打印UIView子類,如果你想進一步深入層次結構,你可能需要用所需的超類作爲參數遞歸調用列出的代碼。

Class * classes = NULL; 
int numClasses = objc_getClassList(NULL, 0); 

if (numClasses > 0) 
{ 
    classes = malloc(sizeof(Class) * numClasses); 
    numClasses = objc_getClassList(classes, numClasses); 

    for (int i = 0; i < numClasses; ++i){ 
     if (class_getSuperclass(classes[i]) == [UIView class]){ 
      NSLog(@"%@", NSStringFromClass(classes[i])); 
     } 
    } 

    free(classes); 
} 
+0

這會給你唯一的直接子類... – Yuji

+0

是的,但得到整個層次可以留作(容易)excercize ... – Vladimir

+0

@Yuji:您可以使用遞歸來查找所有的子類,它看起來像找到1個文件夾的所有子文件夾 – VietHung