Question

Je suis en train d'effectuer une extraction sur des données de base après que j'insérer une entité, et je reçois 0. J'ai une personne Entity.And je construit une demande de récupération dans l'interface graphique DataModule avec le prédicat:

  

nom == "PERSONNAME"

Juste avant de rechercher le nom i et insérer d'abord l'enregistrer. et je sais qui fonctionne parce que j'afficher les noms dans une table et le CoreData est enregistré après i fermer et ouvrir l'application.

Voici le code i Codé pour le chercher. S'il vous plaît aidez-moi à comprendre pourquoi j'obtiens 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;
}

S'il vous plaît aider à résoudre le problème. Merci

Était-ce utile?

La solution

Dans votre modèle prédicat:

name == "PERSONNAME"

devrait être:

name == $PERSONNAME
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top