iPhone CoreData Funky Fetch-Anfrage: Ich möchte Funktion zum Abrufen Array von Unique-CategoryCodes für meine Produkte erstellen Ich habe Entität "Produkt" und es gibt eine Feld (Eigenschaft) Kategorie. Natürlich ist Kategorie die Beziehung zu den Entitäten.CoreData - Einzigartige Werte von subEntity ....?
Dies, wenn meine Funktion:
- (NSArray *)uniqueCategoriesWithQuery:(NSString *)query {
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:[self managedObjectContext]];
NSDictionary *entityProperties = [entity propertiesByName];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"Code"]]];
[request setResultType:NSDictionaryResultType];
[request setIncludesSubentities:YES];
[request setIncludesPropertyValues:YES];
NSError *fetchError = nil;
NSArray *result = [[self managedObjectContext] executeFetchRequest:request error:&fetchError];
DebugLog(@"%@", result);
if (fetchError == nil && [result count] > 0) {
return result;
}
return nil;
}
MyResult: 2010-12-10 05: 55: 33,683 iApp [3453: 307] - [ShoppingHelper uniqueCategoriesWithQuery:] [Zeile 1193] ( { Kategorie = "0x495a200"; }, { Kategorie = "0x4959ce0"; } )
Code funktioniert gut, aber ich kann die Ergebnisse überhaupt nicht verwenden. Ich habe meine Kategorien ... aber ID 'anstelle von NSStrings .. Wie man es konsumiert?
vielleicht sollte ich verwenden: [Anfrage setPropertiesToFetch: [NSArray arrayWithObject: [entityProperties objectForKey: @ "Categories.Code"]]];
um die NSStrings im Distinct NSDictionary zu bekommen?
OR
Fund Kategorie BY ID - Wie es zu tun?
Danke, aber wenn ich verwaltete Objekte zurückgeben, funktioniert die "setReturnsDistinctResults: YES" nicht - ich bekomme alle Produkte. Ich brauche nur eindeutige Kategorien für die gefilterte Produkttabelle. So etwas wie SELECT DISTINCT Category FROM Produkte WHERE ProductName wie '% mylikeString%'. – Cezar
Ah, ja, tut mir leid. –