我目前尝试用这样的东西填充和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。知道我做错了吗?
修改
- (id) initWithSuit:(int)suit value:(int)val {
if ((self = [super init])) {
theSuit = suit;
theValue = val;
}
return self;
}
我正在使用NSEnumerator * enumerator = [deck objectEnumerator];
和一个while循环迭代数组。
答案 0 :(得分:2)
此代码段看起来非常好。问题可能在您的-initWithSuit:value:
方法中 - 我会检查您是否意外地错误地初始化了这些卡片。
编辑:提问者刚发布的init方法看起来也不错。你看到的确切输出是什么导致你相信只有最后一个对象被添加了52次?你究竟是如何检查阵列的? (您的评论说您正在使用NSEnumerator,但是您可以编辑您的问题以包含您正在使用的代码段吗?