NSFetchRequests restituisce 0 risultati quando deve restituire 1
-
20-09-2019 - |
Domanda
Sto cercando di eseguire un'operazione di recupero dei dati di base, dopo inserisco un soggetto, e ottengo 0 risultati. Ho un persona Entity.And ho costruito un prendere richiesta nella GUI DataModule con il predicato:
nome == "PERSONNAME"
Appena prima di cercare il nome inserisco e salvarlo prima. E so che funziona perché i visualizzazione dei nomi in un tavolo e il CoreData viene salvato dopo chiudo e riapro l'applicazione.
Ecco il codice ho codificato per il recupero. Ti prego, aiutami a capire perché mi appare 0
-(Person *)findPersonByName:(NSString *)name{
NSLog(@"looking for person with name: %@",name);
NSDictionary *subs = [NSDictionary dictionaryWithObject:name forKey:@"PERSONNAME"];
NSAssert(self.managedObjectModel, @"anything wrong with managedObjectModel");//no
NSFetchRequest *fetch = [self.managedObjectModel fetchRequestFromTemplateWithName:@"getPersonByName" substitutionVariables:subs];
NSAssert(fetch, @"anything wrong with fetch?");//no
NSLog(@"fetch: %@",fetch);
NSError *error;
NSArray *result = [self.managedObjectContext executeFetchRequest:fetch error:&error];
NSLog(@"fetch request getQuestionsByParent: %u found (sub variables:%@, results:%@)", [result count], subs, result);
if (result == nil){
// Deal with error...
}
else if([result count]>0){
for (Person *person in result) {
NSLog(@"search result: %@",person.name);
}
}
return nil;
}
Si prega di contribuire a risolvere il problema. Grazie
Soluzione
Nel modello predicato:
name == "PERSONNAME"
dovrebbe essere:
name == $PERSONNAME
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow