我有一个允许用户选择一种childObject的界面。这些对象都继承自同一个parentObject。有没有办法在给定parentObject的情况下动态生成这个childObjects列表?目前,当我创建一个新孩子时,我必须将其添加到TVC的孩子列表中进行显示。
编辑: 这是一个例子:
Class A (child of NSObject)
->Class A1 (child of Class A)
->Class A2 (child of Class A)
我想问A级:“你的孩子是什么?”
答案 0 :(得分:2)
您可以使用反射:
// find out the superclass of a class or object
Class parent = [[theObject class] superclass];
// get all classes loaded
unsigned n_classes = objc_getClassList(NULL, 0);
Class *classes;
classes = malloc(sizeof(*classes) * n_classes);
objc_getClassList(classes, n_classes);
// Filter the classes so that only child classes of the
// particular parent class are present
NSMutableArray *children = [NSMutableArray array];
int i;
for (i = 0; i < n_classes; i++) {
if ([classes[i] isKindOfClass:parent]) {
[children addObject:classes[i]]; // Yes, classes temselves are objects
}
}
free(classes);
这里&#39;孩子&#39;将包含parent
的descandants。