Otázka o NSMutableArray

hlasů
1

I v současné době snaží vyplnit a NSMutableArray něco takového:

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];
  }
}

Nyní je problém, když jdu přes pole, pouze poslední objekt tvořím je 52x v poli. Napadá vás, co dělám špatně?


Upravit:

-initWithSuit vypadá takto:

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

Já používám NSEnumerator * enumerator = [deck objectEnumerator];a while pro iteraci přes pole.

Položena 18/08/2009 v 21:41
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Tento fragment kódu vypadá naprosto v pořádku. Problém je pravděpodobně v -initWithSuit:value:metodě - bych zkontrolovat, zda jste náhodou inicializaci karty nesprávně.


Edit: metoda init právě odeslal Tazatel vypadá v pořádku stejně. Jaký je přesný výstup vidíte, že vás vede k přesvědčení, že pouze poslední objekt byl 52 krát přidáno? Jak přesně jste zkoumá pole? (Váš komentář říká, že používáte NSEnumerator, ale můžete upravit svůj dotaz zahrnout fragment, který používáte pro to?

Odpovězeno 18/08/2009 v 22:12
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more