Ich habe ein Core Data-Modell Setup wie so:Wie erstellt man einen NSFetchRequest, der Core Data-Objekte basierend auf Attributen und Beziehungen filtert?
- Blockbuster Entity
- -Beziehung zu DVD Einheiten.
- DVD Entity
- Titel Attribut (string)
- zu-Eins-Beziehung zu einem Elternteil Blockbuster Einheit
Eine einzelne Blockbuster haben kann mehrere DVDs darin (To-Many). Jede DVD kann nur Teil eines einzelnen Blockbusters (To-One) sein.
Es gibt mehrere Blockbuster, und einige können DVD-Entities enthalten, die denselben Titel wie DVD-Entities von anderen Blockbustern haben. Zum Beispiel Blockbuster A könnte eine Kopie von "Transformers 2" haben, und so funktioniert Blockbuster C und Blockbuster G. Stellen wir uns vor, dass kein Blockbuster mehr als eine Kopie des gleichnamigen Films hat.
Ich bin daran interessiert, die Transformers 2 DVD von Blockbuster C in Grabbing. Ich will nicht die Kopien von Blockbuster A oder G, weil mein Chef dort frequentiert, und ich kann nur mit dem Brennen dieses Stück Müll in Blockbuster C kommen.
Meine Frage ist, wie kann ich eine NSFetchRequest bilden, schnappt sich eine DVD mit den Titel „Transformers 2“, die ein Kind der ist Blockbuster „C“ übergeordnete Entität?
Diese Art der Anfrage wird greifen alle „Transformer 2“ DVDs, aber nicht die, die spezifisch für die Blockbuster C Einheit:
NSManagedObjectContext *moc = [self managedObjectContext];
NSString *aTitle = @"Transformers 2";
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title == %@", aTitle];
[request setEntity:[NSEntityDescription entityForName:@"DVD" inManagedObjectContext:moc]];
[request setPredicate:predicate];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
// error handling code
[request release];
Gibt es eine Möglichkeit, sagen wir, die Objekt-ID eines zu übergeben verwandtes Objekt innerhalb des NSPredicates, Filterung darauf?
Vielen Dank, das ist es! Und danke für den Link zu den Dokumenten. Sehr hilfreich. :) –