- Registriert
- 15.03.08
- Beiträge
- 108
Hej Leute,
und wieder lande ich im AT Diesmal habe ich ein, für mich echt kompliziertes, Problem: Ich würde in einer Such-Funktion meinen einzelnen Listeneinträgen gerne Tags zu weisen. Erläuterung:Wenn jemand nach dem Tag sucht, sollen alle ursprünglichen Listeneinträge angezeigt werden, die mit diesem Tag "Verknüpft" sind. Habe mir gedacht, ich mache einfach ein NSDictionary mit einem Array der Tags als Objekt und dem Listennamen als Key. Aber irgendwie stellte sich das dann doch als nicht so einfach herraus. Hier mal etwas Code:
So, soweit so gut, das Dictionary wird erst mal planmäíg befüllt. Dann habe ich mir gedacht, es wäre doch nicht schlecht, wenn wir erst mal alle Tags sammeln würden, um diese dann in unserer Suchliste abzubilden:
Das funktioniert auch noch alles super, ich habe die Tags dann in meinem Array. Damit hätte ich eigentlich alles, womit ich meine Suche implementieren könnte. Einziges Problem: Wie kriege ich meine Keys, also bei mir sind das NibNames, aus meinem Tags-Dictionary mithilfe der Einträge aus allTags wieder raus?! Ich habe es mit
und ähnlichem versucht, komme aber leider auf keinen Grünen Zweig bei der Sache.
Meine Frage nun: Habt ihr eine Idee, wie ich mit meinem Ansatz ans Ziel komme oder habt ihr sogar noch einen besseren ohne so viele Umwege?
Greetz,
nelfisch
und wieder lande ich im AT Diesmal habe ich ein, für mich echt kompliziertes, Problem: Ich würde in einer Such-Funktion meinen einzelnen Listeneinträgen gerne Tags zu weisen. Erläuterung:Wenn jemand nach dem Tag sucht, sollen alle ursprünglichen Listeneinträge angezeigt werden, die mit diesem Tag "Verknüpft" sind. Habe mir gedacht, ich mache einfach ein NSDictionary mit einem Array der Tags als Objekt und dem Listennamen als Key. Aber irgendwie stellte sich das dann doch als nicht so einfach herraus. Hier mal etwas Code:
Code:
tags = [[NSMutableDictionary alloc] initWithDictionary:[[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:@"Energie", @"Kinetik", @"Bewegung", nil] forKeys:[NSArray arrayWithObjects:@"KinetischeEnergie", @"KinetischeEnergie", @"KinetischeEnergie", nil]]];
//MECHANIK
[tags setObject:[NSArray arrayWithObjects:@"Energie", @"Potenzial", @"Bewegung", nil] forKey:@"PotenzielleEnergie"];
[tags setObject:[NSArray arrayWithObjects:@"Beschleunigt", @"Bewegung", @"Gleichmäßig", nil] forKey:@"GleichmaesigBeschleunigt"];
So, soweit so gut, das Dictionary wird erst mal planmäíg befüllt. Dann habe ich mir gedacht, es wäre doch nicht schlecht, wenn wir erst mal alle Tags sammeln würden, um diese dann in unserer Suchliste abzubilden:
Code:
tags = [[NSDictionary alloc] initWithDictionary:[self.navigationController getDictForTags]];
NSArray* keyArray = [[NSArray alloc] initWithArray:[[self.navigationController getDictForTags] allKeys]];
for(int i = 0; i < [keyArray count]; i++){
if([[tags objectForKey:[keyArray objectAtIndex:i]] isKindOfClass:[NSArray class]]){
NSString* string1 = [NSString stringWithFormat:@"%@",[[tags objectForKey:[keyArray objectAtIndex:i]] objectAtIndex:0]];
NSString* string2 = [NSString stringWithFormat:@"%@",[[tags objectForKey:[keyArray objectAtIndex:i]] objectAtIndex:1]];
NSString* string3 = [NSString stringWithFormat:@"%@",[[tags objectForKey:[keyArray objectAtIndex:i]] objectAtIndex:2]];
if([allTags containsObject:string1] == FALSE){
[allTags addObject:string1];
}
if([allTags containsObject:string2] == FALSE){
[allTags addObject:string2];
}
if([allTags containsObject:string3] == FALSE){
[allTags addObject:string3];
}
}}
Code:
[tags allKeysForObject:string1];
Meine Frage nun: Habt ihr eine Idee, wie ich mit meinem Ansatz ans Ziel komme oder habt ihr sogar noch einen besseren ohne so viele Umwege?
Greetz,
nelfisch