2010-05-21 6 views
0

J'essaie d'ajouter des nombres aléatoires à la fin de ce tableau quand j'appelle cette fonction. Je l'ai réduit à cela jusqu'à présent. quand je vérifie pour voir si quelque chose est dans le tableau, il est dit 0. Alors maintenant, je suis assez perplexe. Je pense que MutableArray en libère le contenu avant même de pouvoir les utiliser. problème est que je ne sais pas quoi utiliser. Un bouton appelle la fonction et à peu près tout le reste est pris en charge c'est juste cette partie à l'intérieur de la fonction.Ajouter un entier sur un tableau

NSMutableArray * choices; 

-(void) doSomething { 

int r = arc4random() % 4; 
//The problem... 
[choices addObject:[NSNumber numberWithInt:r]]; 

int anInt = [[choices objectAtIndex:1] integerValue]; 
NSLog(@"%d", anInt); 
    //I'm getting nothing no matter what I do. 

//some type of loop that goes through the array and displays each element 
//after it gets added 

} 
+0

J'ai regardé autour et je ne vois pas comment cela ne fonctionne pas honnêtement. – Ohmnastrum

Répondre

2

choix n'a jamais été initialisés?

... where: choices = [[NSMutableArray alloc] init];

... puis, aussi, les index de tableau commencent à 0, donc [[colorChoices objectAtIndex: 1] ne fonctionnera pas la première fois que la fonction doSomething est appelée.

+0

ne l'a jamais initialisé. Merci pour le rappel ^^; quant à commencer sur 1, j'ai pensé que cela n'avait pas d'importance puisque je l'ai pressé plus de 2 fois. – Ohmnastrum

0

Vous devez initialiser choices:

NSMutableArray* choices; 
choices = [[NSMutableArray alloc] init]; 
+0

J'ai essayé de l'initialiser comme ceci (dans le même fichier il a été déclaré) et j'ai eu plusieurs erreurs. – Ohmnastrum

+0

okay je l'ai essayé à l'intérieur d'un ibAction et cela a fonctionné. mais que faire si je voulais que le tableau persiste pendant tout le match? ne serait-il pas hors de portée? – Ohmnastrum

+0

Faites-en une propriété de votre classe, par ex. voir le contrôleur ou le délégué d'application. Ensuite, vous pouvez l'utiliser en dehors d'une seule méthode. –