关于NSMutableArray的问题

时间:2009-08-18 20:41:22

标签: objective-c cocoa initialization 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循环迭代数组。

1 个答案:

答案 0 :(得分:2)

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


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