我在数据结构类"Foo“中有NSMutableArray *子类,它是许多其他类的超类,比如"Bar1”和"Bar2“。该数组存储Bar1和Bar2对象,以从Foo获得子类的树状递归父-子结构。为了访问数组中的对象,我使用Objective-C中的foreach循环遍历它们:
for(Foo *aFoo in children) {
...
}
但是,我通常只需要遍历数组中具有某个类的对象,在这种情况下,我希望为数组子对象中的类Bar1的每个对象执行一个任务。使用for(子对象中的Bar1 *对象)再次循环所有对象,而不仅仅是具有类Bar1的对象。有没有办法实现我想要的东西?
发布于 2010-06-14 21:51:47
您必须遍历所有对象,并在循环内执行类型检查。
for(id aFoo in children) {
if ([aFoo isKindOfClass:[Bar1 class]])
...
}
}
https://stackoverflow.com/questions/3037700
复制相似问题