Objective c 如何从类列表中找到从特定类继承的类?
我得到了我申请的所有类的列表 我想从我的列表中找到从MySpecificRapperClass继承的每个类Objective c 如何从类列表中找到从特定类继承的类?,objective-c,cocoa,Objective C,Cocoa,我得到了我申请的所有类的列表 我想从我的列表中找到从MySpecificRapperClass继承的每个类 int numClasses = objc_getClassList(NULL, 0); Class *classes = malloc(sizeof(Class) * numClasses); objc_getClassList(classes, numClasses); for (int i = 0; i < numClasses; i++) { Class class
int numClasses = objc_getClassList(NULL, 0);
Class *classes = malloc(sizeof(Class) * numClasses);
objc_getClassList(classes, numClasses);
for (int i = 0; i < numClasses; i++) {
Class class = classes[i];
if( isThisClassInheritsFrom(class,MySpecificWrapperClass )){
MySpecificWrapperClass o = [[class alloc]init];
...
}
}
free(classes);
int numclass=objc_getClassList(NULL,0);
类别*classes=malloc(sizeof(Class)*numclass);
objc_getClassList(类、numClass);
for(int i=0;i
有人知道怎么做吗?
谢谢你的帮助。
Fred要测试某个类是否继承了您的类,请尝试
if ([obj isKindOfClass: MySpecificWrapperClass])
要测试某个类是否继承了您的类,请尝试
if ([obj isKindOfClass: MySpecificWrapperClass])
也许有更好的解决办法,但暴力应该做到这一点。返回给定的
类
对象的超类的类
对象。当您到达根类时,它返回Nil
for (int i = 0; i < numClasses; i++) {
Class class = classes[i];
Class superclass = class_getSuperclass(class);
while( superclass != Nil ){
if( superclass == MySpecificWrapperClass ){
// Got one!
break;
}
superclass = class_getSuperclass(superclass);
};
}
for(int i=0;i
这是假设您希望检查给定类的整个层次结构,即,您希望每个类在其祖先中的任何位置都有您的类。如果您只关心直接子类,那么很明显,您只需要调用一次
class\u getSuperclass
。可能有更好的解决方案,但暴力应该做到这一点。返回给定的类
对象的超类的类
对象。当您到达根类时,它返回Nil
for (int i = 0; i < numClasses; i++) {
Class class = classes[i];
Class superclass = class_getSuperclass(class);
while( superclass != Nil ){
if( superclass == MySpecificWrapperClass ){
// Got one!
break;
}
superclass = class_getSuperclass(superclass);
};
}
for(int i=0;i
这是假设您希望检查给定类的整个层次结构,即,您希望每个类在其祖先中的任何位置都有您的类。如果您只关心直接子类,显然,您只需要调用一次
class\u getSuperclass
。您可以使用isSubclassOfClass:
方法检查一个类是否是另一个类的子类,该方法由NSObject
定义
您可以使用
NSObject
定义的isSubclassOfClass:
方法检查一个类是否是另一个类的子类
谢谢您的回答。在这个层次上,我没有对象,只有类。如果我指导我的班级,我可以做到这一点,但如果我能做到这一点就不合适了。是的。如果没有类的实际对象,我不知道有什么方法可以实现这一点。祝你好运!谢谢你的回答。在这个层次上,我没有对象,只有类。如果我指导我的班级,我可以做到这一点,但如果我能做到这一点就不合适了。是的。如果没有类的实际对象,我不知道有什么方法可以实现这一点。祝你好运!毕竟,层次结构基本上只是一个链表。很乐意帮忙!“发现它也有用”看起来确实很严厉,尽管+1仍然层次结构基本上只是一个链表,毕竟。很乐意帮忙!发现它也很有用虽然+1仍然是:
for(int i=0;i
但它在一个类中崩溃了。我做到了:for(int I=0;I
但它在其中一个类中崩溃。