2010-05-19 3 views
0

J'essaie de comparer un chemin d'index dans ma méthode de délégué didSelectRowAtIndexPath avec un tableau de chemins d'index.comparer indexPaths dans une boucle iphone

for (n=0; n < [tempMutArrray count]; n= n+1){ 

    NSComparisonResult *result = [indexPath compare:[tempMutArray objectAtIndex:n]; 

//What I want to do is is write an if statement that executes a certain block of code 
//if the two index paths are equal, but I cant figure out how to work with an 
//NSComparisonResult. 

} 

Répondre

1

Utilisez NSOrderedSame et aucun pointeur - NSComparisonResult est juste un entier:

NSComparisonResult result = [indexPath compare:[tempMutArray objectAtIndex:n]; 

if(result == NSOrderedSame) { 
    // do stuff 
} 

Dans les API Cocoa, il y a quelques non-classe-types en cours d'utilisation. Les plus importants sont ceux du Foundation data types, qui comprennent

  • énumérations
  • typedefs pour les types intégrés
  • structures
1

Il est juste un int tenant une de ces valeurs:

  • NSOrderedAscending
  • NSOrdered Même
  • NSOrderedDescending

Dans votre cas, test NSOrderedSame:

if (result == NSOrderedSame) { 
    ... 
} 
+0

Pour pinailler, '' NSComparisonResult' est un enum', pas 'int'. –

+0

Non, ce n'est pas le cas. Les valeurs 'NSOrdered ...' sont membres de l'énumération '_NSComparisonResult' (notez le préfixe de soulignement), mais' NSComparisonResult' est un typedef de 'NSInteger', qui est lui-même un typedef de' int'. –

+1

Excuses, j'ai en quelque sorte ignoré que :) * (Note à soi-même: regarder de près avant de pinailler) * –