Группа cocos2d идентичные строки - PullRequest
0 голосов
/ 21 марта 2012

Я генерирую список из некоторой строки до 4

  NSUInteger total = MIN(4, myNSMutableArray.count);
    CGFloat xPos = 0.0f;
    CGFloat yPos = 450.0f;
    CGFloat yPadding = 10.0f;
    NSInteger count = 0;
    for (ItemClass *item in myNSMutableArray) {
      if (count == total) return;

         CCLabelTTF *itemLabel = [CCLabelTTF labelWithString:item.name 
                                                 dimensions: CGSizeMake(280, 50)
                                                  alignment:UITextAlignmentCenter
                                              lineBreakMode:UILineBreakModeWordWrap
                                                   fontName:@"MyFont.otf"
                                                   fontSize:28.0f];
        itemLabel.anchorPoint = ccp(0,0);
        itemLabel.position = ccp(xPos, yPos);
        itemLabel.tag = item.itemID;
        [self addChild:itemLabel];
        [myNSMutableArrayOfLabels addObject:itemLabel];
        yPos -= itemLabel.contentSize.height + yPadding;
        count++;
    }

Позвольте мне иметь список строк, таких как: строка 1, строка 2, строка 3, строка 3, строка 3, строка 3. Я хочу сгруппировать их, чтобы получить что-то вроде:

string 1
string 2
string 3 (4)

1 Ответ

2 голосов
/ 21 марта 2012

Поскольку ваши данные являются NSMutableArray, это достаточно просто:

NSArray *sorted = [myArray sortedArrayUsingComparator:^(id obj1, id obj2) {
    assert([obj1 isKindOfClass:[ItemClass class]]);
    assert([obj2 isKindOfClass:[ItemClass class]]);

    ItemClass *item1 = obj1;
    ItemClass *item2 = obj2;

    return [item1.name compare:item2.name];
}];

for (ItemClass *item in sorted)
{
    // create your labels
}
...