关于产品的NSMutableArray

问题描述:

我公司目前正在努力填补和NSMutableArray里像这样的东西:关于产品的NSMutableArray

deck = [[NSMutableArray alloc] initWithCapacity:52]; 
for (int suit = 0; suit <= 3; suit++) { 
    for (int value = 1; value <= 13; value++) { 
    ANormalCard *card = [[ANormalCard alloc] initWithSuit:suit value:value]; 
    [deck addObject:card]; 
    [card autorelease]; 
    } 
} 

现在的问题是,当我走在阵列上,只有最后一个对象创建数组中52X。任何想法我做错了什么?


编辑:

的-initWithSuit看起来是这样的:

- (id) initWithSuit:(int)suit value:(int)val { 
    if ((self = [super init])) { 
     theSuit = suit; 
     theValue = val; 
    } 
    return self; 
} 

我使用NSEnumerator * enumerator = [deck objectEnumerator];和while循环遍历数组。

+0

确保initWithSuit:value:不总是返回同一个对象 – cocoafan 2009-08-18 20:45:16

+0

我不' t认为我理解了这个问题 - 最后一个对象有什么问题? – 2009-08-18 20:46:15

+2

这段代码看起来很好,你的实际代码有什么不同吗?你可以发布initWithSuit的代码:value:? – grahamparks 2009-08-18 20:46:33

此代码片段看起来非常好。这个问题很可能在你的-initWithSuit:value:方法中 - 我会检查你是否意外地错误地初始化卡片。


编辑:刚刚发布由提问者init方法看起来不错,以及。你看到的确切输出是什么,导致你相信只有最后一个对象被添加了52次?你究竟如何检查数组? (你的评论说你使用的是NSEnumerator,但是你可以编辑你的问题以包含你正在使用的代码片段吗?

+0

-initWithSuit看起来像这样: - (id)initWithSuit:(int)套装值:(int)val if((self = [su每个init])) { theSuit = suit; theValue = val; } return self; } – eemceebee 2009-08-19 06:41:46

+0

我将它添加到您的问题。 – 2009-08-19 16:10:16