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

È stato utile?

Soluzione

Nel modello predicato:

name == "PERSONNAME"

dovrebbe essere:

name == $PERSONNAME
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top