我正在开发一个项目,要求我创建一个包含更多CCArray的CCArray。我正在寻找一种方法来遍历根数组内的数组中的所有对象。我想使用CCARRAY_FOREACH遍历所有15个对象。这可能吗?
我在使用CCARRAY_FOREACH([batchnode children],object)使用CCSpriteBatchNode时使用了CCARRAY_FOREACH但是如何使用数组数组?我知道CCARRAY_FOREACH(rootArray,object)将无法工作,因为它返回内部数组而不是这些数组中的对象。
如果是一个菜鸟问题,请告诉我并抱歉。 :0 /
答案 0 :(得分:0)
你可以使用foreach循环...
for(CCArray *array in yourArray)
{
for(YourObject *obj in array)
{
//access objects here
}
}
检查语法,因为我现在没有x代码..它只是一个片段..希望这会有所帮助.. :)
答案 1 :(得分:0)
你试过这个吗?
CCARRAY_FOREACH(array, innerArray)
{
CCARRAY_FOREACH(innerArray, item)
{
// stuff
}
}
答案 2 :(得分:0)
递归是你的朋友。
-(void) recurseIntoArray:(CCArray*)array
{
for (id item in array)
{
if ([item isKindOfClass:[CCArray class]])
{
[self recurseIntoArray:(CCArray*)item];
}
else
{
NSLog(@"item: %@", item);
}
}
}
只需使用根数组开始迭代:
[self recurseIntoArray:rootArray];
值得一提的是:CCARRAY_FOREACH不再是必需的,至少在cocos2d 1.1和2.0中你可以使用常规的快速迭代。也可以在cocos2d 1.0.1中工作,我想我也在那里使用了快速枚举。