J'ai un tableau mutable qui contient des dictionnaires mutables avec des chaînes pour les clés latitude, longitude et id. Certaines des valeurs de latitude et de longitude sont les mêmes et je veux supprimer les doublons du tableau afin que je n'ai qu'un seul objet par emplacement. Je peux énumérer mon tableau et en utilisant une deuxième énumération examiner chaque objet pour trouver des objets qui ont des identifiants différents, mais la même latitude et la longitude, mais si j'essaie de supprimer l'objet, je mute le tableau pendant l'énumération.Cocoa - Enumerate array mutable, suppression d'objets
Existe-t-il un moyen de supprimer des objets d'un tableau lors d'une énumération afin d'énumérer uniquement l'ensemble actuel d'objets lors de la mise à jour du tableau?
Espérons que cette question a du sens.
Merci, Howie
Merci pour les conseils - j'ai essayé quelque chose comme ça, mais il y a un problème. Si je suis sur l'index 3 et que je trouve qu'il a le même emplacement que l'index 4, j'ajouterais l'index 4 au tableau "à supprimer". Lorsque je boucle en boucle pour l'itération suivante, je veux que l'objet à l'index 4 soit ignoré car je sais déjà qu'il s'agit d'un doublon. Existe-t-il un moyen de supprimer des objets de la matrice d'origine que j'énumère ou en utilisant une autre méthode de bouclage? – Ward
Ward, aucune des méthodes suggérées par Peter n'a le problème que vous décrivez. Néanmoins, il existe un moyen simple de l'éviter si vous voulez faire les choses manuellement: parcourir les objets à supprimer de l'index le plus haut vers le plus bas. –
Ward: Non, vous ne pouvez pas muter le tableau pendant que vous l'énumérez. Cela provoquera une exception Cocoa. Vous devez soit le faire muter ou le remplacer * après * la boucle, soit faire une boucle sur une copie. Je recommande la solution 'removeObjectsAtIndexes:'. –