2010-08-27 4 views

Répondre

10
+0

wow? C'était ... Simple. Hahah Je vais essayer et revenir vers toi. –

+0

Cela ne fonctionnera que si vous avez une référence au même objet chaîne qui a été placé dans le tableau. Pas seulement une chaîne qui a la même valeur. –

+7

Cela fonctionnera en utilisant 'indexOfObject: @" Une chaîne de caractères "'! 'indexOfObject:' utilise 'isEqual:' sur les objets du tableau, et 'NSString's' l'implémentation de' isEqual: 'teste la valeur de la chaîne, pas le pointeur;) –

1

Bien que très ancienne, mais cette question est assez élevé à la recherche google. Voici une version en utilisant le bloc,

- (void)testSearch 
{ 
    NSArray *hashAlgorithms = @[@"SHA1", @"SHA2", @"SHA256", @"SHA384", @"SHA512"]; 
    NSString *searchFor = @"SHA384"; 
    __block NSInteger index = NSNotFound; 
    [hashAlgorithms enumerateObjectsUsingBlock:^(id alg, NSUInteger idx, BOOL *stop) { 
     if ([alg compare:searchFor options:NSCaseInsensitiveSearch] == NSOrderedSame) { 
      NSLog(@"Found: %@", searchFor); 
      *stop = YES; 
      index = idx; 
     } else { 
      NSLog(@"NOT Equal: %@", alg); 
     } 
    }]; 

    if (index == NSNotFound) { 
     NSLog(@"Not found. %li", (long)index); 
    } else { 
     NSLog(@"Found at: %li", (long)index); 
    } 
}