2010-08-12 5 views
0

Bonjour, je suis nouveau sur iPhone. Ce que je fais est de trier le tableau des images; ce tableau est composé de 22 éléments. J'écris le code pour cela:comment résoudre le problème de tri

NSMutableArray *images2 = [[NSMutableArray alloc] initWithArray:images] 
int n=22; 
for (int i=0;i<n;i++){ 

    for (int j=1;j<n-i;j++){ 
     if(count[j-1]>count[j]){ 
      int t = count[j-1] 
      count[j-1] = count[j] 
      count[j] =t ; 

      NSString *tempimage = [images objectAtIndex:j-1]; 
      [images2 replaceobjectAtIndex:j-1 withobject:[image2 objectAtIndex:j]]; 
      [images2 replaceobjectAtIndex:j withobject:tempimage]; 
     } 
    } 
} 
images = [[NSMutableArray alloc] initWithArray:images2]; 

Il trie finement mais à la fin il remplace la 21ème image. Quel est le problème? S'il y a des erreurs, veuillez poster le bon code. Ce dont j'ai besoin, c'est de remplacer la première image par la dernière et la seconde image.

+0

Où obtenez-vous le tableau 'count'? – kennytm

+0

Pouvez-vous nettoyer un peu votre code? Ajouter une indentation correcte à l'intérieur de vos boucles for et si les instructions rendraient cela beaucoup plus facile à lire. Il vous manque également des parenthèses dans la toute première ligne de code. – kubi

+0

En outre, il semble que vous triez un tableau de chaînes, pas d'images. – kubi

Répondre

1

Solution à votre problème: n'implémentez pas le tri vous-même, laissez le framework le faire pour vous. NSMutableArray a un certain nombre de méthodes de tri qui feront tout cela pour vous. Si vous pouvez clarifier quelques points (voir les commentaires sur votre question), nous pouvons vous aider à construire l'appel de méthode de tri approprié.

– exchangeObjectAtIndex:withObjectAtIndex: 
– sortUsingDescriptors: 
– sortUsingComparator: 
– sortWithOptions:usingComparator: 
– sortUsingFunction:context: 
– sortUsingSelector: 
+0

merci de travailler mais je l'écris dans - (IBAction) buttonclick: (id) expéditeur donc il appelle seulement une fois comment puis-je le changer pour chaque fois que j'ai essayé [self buttonclick: (id) expéditeur]; mais il donne une erreur comment puis-je résoudre ce pls m'aider – MaheshBabu

0

Comme d'autres l'ont mentionné, vous devriez juste obtenir le cadre pour faire le tri pour vous. Il le fera beaucoup plus efficacement que le code ci-dessus.

Cependant, si vous vous demandez ce qui ne va pas avec votre algorithme de tri, je pense qu'il vous manque une boucle externe while pour vérifier si une autre passe est nécessaire avant que le tableau ne soit trié. Vous essayez de mettre en œuvre, n'est-ce pas?

Questions connexes