NSFetchRequests devuelve 0 resultados cuando debería devolver 1
-
20-09-2019 - |
Pregunta
Estoy tratando de realizar una zona de alcance en los datos básicos después de que insertar una entidad, y me da 0 resultados. Tengo una persona Entity.And construí una solicitud de búsqueda en el módulo de datos interfaz gráfica de usuario con el predicado:
Nombre == "a PERSONNAME"
Justo antes de buscar el nombre i insertar y guardarlo primero. y sé que funciona porque mostrar los nombres en una mesa y el coredata se guarda después de que cerrar y abrir de nuevo la aplicación.
Aquí está el código que codificaba para la obtención de información. Por favor, me ayudan a entender ¿Por qué recibo 0 resultados
-(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;
}
Por favor, ayudar a resolver el problema. Gracias
Solución
En la plantilla de predicados:
name == "PERSONNAME"
debería ser:
name == $PERSONNAME
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow