Как реализовать 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];
}
Вы должны избегать изменения массива во время его перечисления.