Je travaille sur l'implémentation d'un searchBar personnalisé pour une table assez complexe et j'ai de nouveau rencontré ce motif de code. Ceci est un exemple du début livre iPhone développement:Comment Fast Enumeration (looping) fonctionne-t-il en Objective-C? (ie: pour (NSString * aString dans unDictionnaire) ...)
- (void)handleSearchForTerm:(NSString *)searchTerm
{
NSMutableArray *sectionsToRemove = [[NSMutableArray alloc] init];
[self resetSearch];
for (NSString *key in self.keys)
{
NSMutableArray *array = [self.names valueForKey:key];
NSMutableArray *toRemove = [[NSMutableArray alloc] init];
for (NSString *name in array)
{
if ([name rangeOfString:searchTerm
options:NSCaseInsensitiveSearch].location == NSNotFound)
[toRemove addObject:name];
}
if ([array count] == [toRemove count])
[sectionsToRemove addObject:key];
[array removeObjectsInArray:toRemove];
[toRemove release];
}
[self.keys removeObjectsInArray:sectionsToRemove];
[sectionsToRemove release];
[table reloadData];
}
La partie que je suis curieux de savoir est le « (nom NSString * dans le tableau) » section. Qu'est-ce que ça fait exactement? Il semble créer une chaîne pour chaque élément du tableau. Aussi, comment cela fonctionne avec les dictionnaires?
Merci!
Merci pour les réponses rapides tout le monde! J'ai édité le titre pour inclure "énumération rapide". – Jonah