J'ai ce que je pense est une erreur étrange, mais bien sûr, je suis relativement nouveau dans le développement de l'iPhone, il est donc possible que ce n'est pas si bizarre après tout. J'ai un tableau (NSMutableArray) d'objets dont je garde la trace (un est ajouté au tableau chaque fois que l'utilisateur touche un bouton) ce que j'essaye de faire est quand le tableau atteint une certaine valeur I ajoutez le nouvel objet au début du tableau, puis supprimez le dernier objet du tableau. Quand je parcours mon code, tout fonctionne, l'objet est supprimé, mais l'application tombe en panne ... le débogueur ne se trouve sur aucune ligne de code lorsque l'application plante et qu'il n'y a plus de boucles ou de minuteurs dans l'application. Je pense à tout ce qui fonctionne.NSMutableArray supprimant l'objet, puis l'application se bloque
est ici le code qui est exécuté juste avant que chaque fois que l'utilisateur touche un bouton d'un objet est ajouté à l'écran et affiche le crash
if([objectArray count] > 10)
{
MyObject *objectToRemove = [[MyObject alloc] init];
objectToRemove = [objectArray objectAtIndex:10];
[objectArray removeObjectAtIndex:10];
[objectToRemove removeFromSuperview];
}
le principal point de ce code, puis lorsque le le nombre d'objets atteint 10 et l'utilisateur touche à nouveau le bouton le premier objet ajouté a été supprimé et le nouvel objet est affiché. Si je commente la ligne removeObjectAtIndex, tout fonctionne comme prévu, mais le tableau continue à croître.
J'ai également essayé de supprimer l'objet après la suppression de l'UIview et l'application se comporte de la même manière. Si j'essaye de retirer un objet du tableau à un index différent (I.E 3) l'application ne plante pas mais cela ne me donne pas le résultat attendu. mais comme je l'ai dit, le code fonctionne bien et quand je vérifie le compte du tableau avant et après l'exécution de la ligne, la valeur est 11 et 10 respectivement.
Toute aide que vous pouvez fournir serait apprécié,
BWC