Как реализовать countByEnumeratingWithState:objects:count: для класса, который внутренне использует NSMutableArray

Я хотел использовать

 for (TBL_CardView *cardView in cardsInHand)
    {
        // <#statements#>
    }

TBL_CardView - мой пользовательский класс, и cardsInHand просто (TBL_CardViewArray*)

Так что мне нужно реализовать countByEnumeratingWithState:objects:count: для меня TBL_CardViewArray учебный класс.
Это правильно?

Это мой TBL_CardViewArray.h

/**
 *    Keep TBL_CardView in array
 */
@interface TBL_CardViewArray : NSObject

- (TBL_CardView *)drawCard;
- (void)addCard:(TBL_CardView *)card;
- (NSUInteger)cardsRemaining;
- (NSArray*) cardViewArray;

- (TBL_CardView *)drawRandomCard;

@end 

Некоторая важная часть из TBL_CardViewArray.m

@implementation TBL_CardViewArray
{
    NSMutableArray *_cards;
}

Так что я просто использую TBL_CardViewArrayкак обертка вокруг NSMutableArray для хранения моего TBL_CardViewучебный класс.

Вопрос
Как реализовать countByEnumeratingWithState:objects:count: для моего TBL_CardViewArray учебный класс.

Я сделал Google, но не нашел пример, который я мог бы легко использовать.
Я предполагаю, что, поскольку я уже использую NSMutableArray для хранения, это не так сложно, но я не могу понять, как?

1 ответ

Решение

Проще говоря, перешлите его в основу NSMutableArray:

- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id __unsafe_unretained [])stackbuf count:(NSUInteger)len {
    return [_cards countByEnumeratingWithState:state objects:stackbuf count:len];
}

Вы должны избегать изменения массива во время его перечисления.

Другие вопросы по тегам