2009-05-07 8 views
0

J'essaie d'ajouter plusieurs instances de UIImageView (s) à un NSMutableArray de NSMutableDictionar (s). Je le fais, pour pouvoir revenir en arrière et sortir la référence UIImageView, pour changer la position de ces images.Ajout de UIImageView à un NSMutableDictionary

Il semble que, quand je tire les informations du dictionnaire, ne retourne que toute suggestion sur un pointeur NULL ...

comment je devrais mettre en œuvre ce? Il peut y avoir un moyen plus facile méthode pour stocker une liste d'images n et pouvoir les consulter ultérieurement ....

// (for i = 0 to 30) 

UIImageView *newBall = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ball.png"]]; 
newBall.center = CGPointMake (arc4random() % 280 + 20, arc4random() % 440 + 20); 
[self.view addSubview:newBall]; 

NSMutableDictionary *dictBall = [[[NSMutableDictionary alloc] init] autorelease]; 
[dictBall setValue:newBall forKey:@"imgBall"]; 

// the dictionary is then added to the array 

[newBall release]; 

// end for loop 

(je suis en utilisant un dictionnaire, parce que je stocke également une valeur dy/dx taux de changement de mouvement)

+0

Le fragment de code ci-dessus semble correct. Il n'y a rien de mal techniquement avec ce que vous voulez faire. Vous avez probablement besoin de revenir en arrière et vérifier vos hypothèses ou d'autres domaines de votre code. Assurez-vous que rien ne piétine sur le tableau parent et que ... Les valeurs dy/dx fonctionnent-elles correctement? – amattn

Répondre

1

Le code ci-dessus ne me semble pas correct.

Vous créez un nouveau dictBall NSMutableDictionary * à chaque fois dans la boucle. Est-ce que quelque chose le retient après que la boucle existe? Ne ressemble pas à votre code. C'est peut-être pourquoi votre objet est nul. Déplacez cette ligne en dehors/avant la boucle for, et ça devrait aller.

Etes-vous sûr de vouloir stocker UIViewImage dans un dictionnaire? Pourquoi pas juste un identifiant (basé sur le tag) et les coordonnées (CGPoint ou CGRect)? De cette façon, vous pouvez utiliser le tag pour trouver l'UIimageView via le tag et le déplacer où vous le souhaitez. Mémoire moins cher sage.

+0

Désolé - c'est l'ajouter à un tableau ... Je n'ai simplement pas mis cela dans l'exemple de code ci-dessus. (C'est pourquoi j'ai mis ce commentaire là ... J'essayais de résumer mon code, mais je l'ai peut-être rendu plus confus ...) –

Questions connexes