我有一个界面,允许用户选择一种类型的 childObject。这些对象都继承自同一个 parentObject。有没有办法在给定父对象的情况下动态生成这个子对象列表?目前,当我创建一个新孩子时,我必须将其添加到 TVC 的孩子列表中以显示。
编辑:这是一个例子:
Class A (child of NSObject)
->Class A1 (child of Class A)
->Class A2 (child of Class A)
我想问A班:“你的孩子是什么?”
我有一个界面,允许用户选择一种类型的 childObject。这些对象都继承自同一个 parentObject。有没有办法在给定父对象的情况下动态生成这个子对象列表?目前,当我创建一个新孩子时,我必须将其添加到 TVC 的孩子列表中以显示。
编辑:这是一个例子:
Class A (child of NSObject)
->Class A1 (child of Class A)
->Class A2 (child of Class A)
我想问A班:“你的孩子是什么?”
您可以使用反射:
// 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);
这里的 'children' 将包含parent
.