我有数据结构类“Foo”中的NSMutableArray *孩子,它是许多其他人的超类,如“Bar1”和“Bar2”。 该数组存储Bar1和Bar2对象以从Foo中获取类树的递归父子结构。 要使用foreach循环在Objective-C访问的对象数组中,我遍历他们:Objective-C NSMutableArray - 与多个类的对象的foreach循环
for(Foo *aFoo in children) {
...
}
但是,我常常只能通过数组中有一定的类的对象需要循环,在这个case我想为数组子类中的类Bar1的每个对象执行任务。使用for(Bar1 *儿童中的anObject)会再次循环遍历所有对象,而不仅仅是具有Bar1类的对象。有没有办法实现我所需要的?
这可能相当昂贵,但显然没有别的办法。谢谢 – 2010-06-14 13:57:01
不,它不会改变你的内存占用量,你只是在读内存中已有的内容 – unbeli 2010-06-14 14:02:11
一般来说,如果你需要使用'isKindOfClass:'来区分集合中的类,你的设计模式就超出了规范。如果您的集合包含完全由您创建的类的实例,则尤其如此。 – bbum 2010-06-14 16:50:42