J'ai un tableau de chaînes.Objective-C Recherche NSArray pour chaîne?
Comment pourrais-je savoir quel est l'index d'une chaîne dans un tableau?
J'ai un tableau de chaînes.Objective-C Recherche NSArray pour chaîne?
Comment pourrais-je savoir quel est l'index d'une chaîne dans un tableau?
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);
}
}
wow? C'était ... Simple. Hahah Je vais essayer et revenir vers toi. –
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. –
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;) –