0

より多くの CCArray を含む CCArray を作成する必要があるプロジェクトに取り組んでいます。ルート配列内に格納されている配列内のすべてのオブジェクトをループする方法を探しています。CCARRAY_FOREACH を使用して 15 個のオブジェクトすべてをループしたいと思います。これは可能ですか?

  • rootArray [0] - 5 つのオブジェクトでいっぱいの subArrayA が含まれます
  • rootArray [1] - 5 つのオブジェクトでいっぱいの subArrayB が含まれています
  • rootArray [2] - 5 つのオブジェクトでいっぱいの subArrayC が含まれています

CCARRAY_FOREACH([batchnode children], object) を使用して CCSpriteBatchNode を使用するときに CCARRAY_FOREACH を使用しましたが、配列の配列でどのように使用できますか? CCARRAY_FOREACH(rootArray, object) は、それらの配列内のオブジェクトではなく、内部の配列を返すため、機能しないことを知っています。

初心者の質問なら教えてください。:0/

4

3 に答える 3

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では、forで通常の高速反復を使用することができます。cocos2d 1.0.1でも動作する可能性がありますが、そこでも高速列挙を使用したと思います。

于 2012-05-03T12:35:42.047 に答える
0

これを試しましたか?

CCARRAY_FOREACH(array, innerArray) 
{
    CCARRAY_FOREACH(innerArray, item) 
    {
        // stuff
    }
}
于 2012-05-03T12:05:04.370 に答える
0

foreach ループを使用できます...

for(CCArray *array in yourArray)
{
 for(YourObject *obj in array)
  {
       //access objects here
  }
}

私は今xコードを持っていないので、構文を確認してください..それは単なるスニペットです..これが役立つことを願っています.. :)

于 2012-05-03T05:32:27.000 に答える