Core Data NSPredicate für Beziehungen

Mein Objekt-graph ist einfach.

Habe ich eine feedentry-Objekt speichert Informationen über RSS-feeds und eine Beziehung namens-Tag links zu "TagValues" - Objekt. Sowohl die relation (und Umgekehrt) sind zu viele. ich.e, a feed können mehrere tags und eine tag-können verbunden werden, um mehrere feeds.

Bezog ich mich auf Wie zu tun, Kern-Daten-Abfragen über eine Beziehung? und erstellt ein NSFetchRequest. Aber beim abrufen von Daten, bekomme ich eine exception, die besagt,

NSInvalidArgumentException
implementierte SQL-Generierung für das Prädikat

Was soll ich tun? Ich bin ein Neuling auf Kern-Daten 🙁 ich weiß, ich habe etwas getan, was furchtbar falsch... Bitte um Hilfe...

Dank

--

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
//Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FeedEntry" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
//Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"authorname" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

NSEntityDescription *tagEntity = [NSEntityDescription entityForName:@"TagValues" inManagedObjectContext:self.managedObjectContext];
NSPredicate *tagPredicate = [NSPredicate predicateWithFormat:@"tagName LIKE[c] 'nyt'"];          
NSFetchRequest *tagRequest = [[NSFetchRequest alloc] init];
[tagRequest setEntity:tagEntity];
[tagRequest setPredicate:tagPredicate];

NSError *error = nil;
NSArray* predicates = [self.managedObjectContext executeFetchRequest:tagRequest error:&error];


TagValues *tv = (TagValues*) [predicates objectAtIndex:0];
NSLog(tv.tagName); //it is nyt here...


NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag IN %@", predicates];
[fetchRequest setPredicate:predicate];


//Edit the section name key path and cache name if appropriate.
//nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController; 

--

buchen Sie einige Ihrer code, so können wir einen besseren Blick
Mungunth, es sieht aus wie Sie möglicherweise vergessen um die Person des fetchRequest nach der neu-Einstellung die das Prädikat 'tag IN Prädikaten'. Wenn das nicht das Thema, bitte poste auch ein Bild von dem Objekt-Modell, und ich kann Ihnen ein wenig mehr Anleitung.
Mugunth> sollten Sie Ihre Lösung als Antwort und akzeptieren es.
Ich bekam die Antwort durch devforums.apple.com. Bis die NDA ist, kann ich nicht verraten, ist die Antwort... 🙁

InformationsquelleAutor Mugunth | 2009-05-29

Schreibe einen Kommentar