Question

J'essaie d'ajouter plusieurs instances de UIImageView (s) à un NSMutableArray de NSMutableDictionar (s).

Je le fais pour pouvoir revenir en arrière et extraire la référence UIImageView afin de changer la position de ces images.

Il semble que, lorsque je retire les informations du dictionnaire, il ne renvoie qu'un pointeur null ...

Avez-vous des suggestions sur la manière de mettre en œuvre cela? Il peut exister une méthode plus simple pour stocker une liste de n images et pouvoir les référencer 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

(J'utilise un dictionnaire, car je stocke également une valeur dy / dx pour le taux de changement de mouvement)

Était-ce utile?

La solution

Le code ci-dessus ne me convient pas.

Vous créez un nouveau NSMutableDictionary * dictBall à chaque fois dans la boucle. Est-ce que quelque chose le retient après que la boucle existe? Cela ne ressemble pas à votre code. C’est peut-être pour cette raison que votre objet est nul.

Déplacez cette ligne en dehors / avant la boucle for et tout devrait bien se passer.

De plus, êtes-vous sûr de vouloir stocker UIViewImage dans un dictionnaire? Pourquoi ne pas simplement un ID (basé sur le tag) et les coordonnées (CGPoint ou CGRect)? De cette façon, vous pouvez utiliser la balise pour trouver UIimageView via la balise et la déplacer où vous le souhaitez? Moins coûteux en termes de mémoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top