1

我目前尝试用这样的东西填充 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循环来迭代数组。

4

1 回答 1

2

这个代码片段看起来非常好。问题可能出在您的-initWithSuit:value:方法中 - 我会检查您是否不小心错误地初始化了卡。


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

于 2009-08-18T21:12:39.607 回答