Je suis en train d'écrire un jeu, et je dois créer des "Obstacles", j'ai créé une méthode qui génère aléatoirement les obstacles, et retourne leur. Dans un premier temps, dans la méthode, je l'ai fait quelque chose comme ça,iPhone Objective C: Méthode pour générer un nouvel objet et le retourner, semble générer l'ancien objet
Obstacle newObstacle = [[Obstacle alloc] init];
[newObstacle setFrame:CGRectMake(randX, randY, 50, 50)];
return newObstacle;
mais après un certain débogage, j'ai découvert qu'il revenait le même objet, avec la même adresse à chaque fois qu'il a été appelé, donc je n'ai pas un nouvel objet unique.
Alors j'ai changé le code:
return [[Obstacle alloc] initWithFrame:CGRectMake(randX, randY, 50, 50)];
mais le problème semble encore, et est ici là, la meilleure partie, lorsque je tente de débogage, si je mets un point d'arrêt dans la boucle qui cette méthode est appelée (pour qu'elle se mette un peu en pause avant d'appeler la méthode générateur), puis je reçois de nouveaux obstacles uniques, mais si je laisse la boucle s'exécuter et les générer tous, j'inspecte le tableau et découvre qu'ils sont tous les mêmes objets.
Une idée de ce qui se passe ici? Dites-moi si je dois fournir plus de code.
Affiche le code dans lequel vous les avez placés dans le tableau. –
il serait utile si vous pouvez nous montrer votre code de boucle qui les génère tous –
Espérons que votre classe Obstacle n'est pas une classe singleton. Si vous avez écrit cette classe, confirmez-la, et si sa bibliothèque open source, passez par le code une fois s'il vous plaît. – Futur