HI friends, J'ai un tableau composé de plusieurs noms. Je veux rechercher les noms à partir du caractère "c". Comment puis-je rechercher le tableau.Comment rechercher NSArray dans Objective C
Répondre
NSString* firstLetter;
for(NSString* currentString in yourArray)
{
firstLetter = [NSString stringWithFormat:@"%c", [currentString characterAtIndex:0]];
if([firstLetter isEqualToString:@"c"])
{
// NAME OK
}
else
{
// NAME WRONG
}
}
Une autre façon de le faire est avec enumerateObjectsUsingBlock
:
[yourArray enumerateObjectsUsingBlock:^(id name,NSUInteger idx,BOOL *stop) {
if ([name characterAtIndex:0] == 'c') {
NSLog(@"Name begins with c: %@",name);
}
}];
(et notez également que vous voulez tester pour « C », en plus de « c » si votre entrée n'est pas tout en minuscules
+1. Je suis intéressé pourquoi vous avez choisi une énumération de bloc plutôt qu'une boucle for. Préférence personnelle ou raison particulière? –
Si vous voulez arrêter la recherche lorsque vous frappez le premier match, c'est plus facile à faire avec un bloc (* stop = true) qu'avec une énumération rapide 'for ... in'. La construction du bloc facilite également la parallélisation de l'opération si vous le souhaitez (en utilisant l'option 'NSEnumerationConcurrent' sur' - [NSArray enumerateObjectsWithOptions: usingBlock:] '). –
Il donne également un accès facile à l'index de l'objet, ce qui prend un peu plus de travail lors de l'utilisation de l'énumération rapide. – Abizern
Pourquoi le% d ?? Avez-vous essayé cela? –
Oops c'est une erreur! Édité – MathieuF
Ceci est très inefficace. Il crée une nouvelle chaîne formatée pour chaque élément de 'yourArray' et effectue une comparaison de chaînes. – rpetrich