-1

我有一个界面,允许用户选择一种类型的 childObject。这些对象都继承自同一个 parentObject。有没有办法在给定父对象的情况下动态生成这个子对象列表?目前,当我创建一个新孩子时,我必须将其添加到 TVC 的孩子列表中以显示。

编辑:这是一个例子:

Class A (child of NSObject)
->Class A1 (child of Class A)
->Class A2 (child of Class A)

我想问A班:“你的孩子是什么?”

4

1 回答 1

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);

这里的 'children' 将包含parent.

于 2012-09-03T13:42:17.723 回答