关于产品的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循环遍历数组。
此代码片段看起来非常好。这个问题很可能在你的-initWithSuit:value:
方法中 - 我会检查你是否意外地错误地初始化卡片。
编辑:刚刚发布由提问者init方法看起来不错,以及。你看到的确切输出是什么,导致你相信只有最后一个对象被添加了52次?你究竟如何检查数组? (你的评论说你使用的是NSEnumerator,但是你可以编辑你的问题以包含你正在使用的代码片段吗?
-initWithSuit看起来像这样: - (id)initWithSuit:(int)套装值:(int)val if((self = [su每个init])) { theSuit = suit; theValue = val; } return self; } – eemceebee 2009-08-19 06:41:46
我将它添加到您的问题。 – 2009-08-19 16:10:16
确保initWithSuit:value:不总是返回同一个对象 – cocoafan 2009-08-18 20:45:16
我不' t认为我理解了这个问题 - 最后一个对象有什么问题? – 2009-08-18 20:46:15
这段代码看起来很好,你的实际代码有什么不同吗?你可以发布initWithSuit的代码:value:? – grahamparks 2009-08-18 20:46:33