3

我想用

 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 周围使用 as s 包装器来存储我的TBL_CardView类。

问题
如何为我的TBL_CardViewArray班级实施 countByEnumeratingWithState:objects:count:。

我确实谷歌了它,但没有找到一些我可以轻松重用的例子。
我的假设是,因为我已经在使用 NSMutableArray 进行存储,所以它并没有那么复杂,但我不知道怎么做?

4

1 回答 1

7

很简单,将其转发到底层NSMutableArray

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

您必须避免在枚举数组时对其进行变异。

于 2014-07-13T12:56:15.917 回答