NSFetchRequests возвращает 0 результатов, когда он должен вернуть 1 - PullRequest
0 голосов
/ 16 февраля 2010

Я пытаюсь выполнить выборку основных данных после вставки сущности, и я получаю 0 результатов. У меня есть объект Entity. И я создал запрос выборки в графическом интерфейсе DataModule с предикатом:

name == "PERSONNAME"

Непосредственно перед поиском имени я вставляю и сохраняю его первым. и я знаю, что это работает, потому что я отображаю имена в таблице, и coredata сохраняется после того, как я закрываю и снова открываю приложение.

Вот код, который я кодировал для получения. Пожалуйста, помогите мне понять, почему я получаю 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;
}

Пожалуйста, помогите решить проблему. Спасибо

1 Ответ

2 голосов
/ 16 февраля 2010

В вашем шаблоне предиката:

name == "PERSONNAME"

должно быть:

name == $PERSONNAME
...