Ich arbeite an der Implementierung einer angepassten searchBar für eine ziemlich komplexe Tabelle und bin auf dieses Codemuster AGAIN gestoßen. Dies ist ein Beispiel von Anfang iPhone Entwicklung Buch:Wie funktioniert Fast Enumeration (Schleifen) in Objective-C? (zB: for (NSString * aString in aDictionary) ...)
- (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];
}
Der Teil I gespannt bin, ist der „für (NSString * Name in Array)“ Abschnitt. Was macht das genau? Es scheint eine Zeichenfolge für jedes Element im Array zu erstellen. Wie funktioniert das mit Wörterbüchern?
Danke!
Vielen Dank für die schnelle Antwort jeder! Ich habe den Titel so bearbeitet, dass er "schnelle Aufzählung" enthält. – Jonah