Estoy trabajando en una aplicación iphone y tengo una relación sencilla de muchos a muchos configurada con objetos de grupo y contactos. Un grupo puede tener muchos contactos y los contactos pueden pertenecer a múltiples grupos.Fallo al usar la operación agregada: "TODO" en una aplicación Core Data iOS
Estoy intentando seleccionar todos los grupos a los que un contacto en particular NO pertenece ya con el siguiente predicado. (Nota: el campo UID es un campo de cadena que he utilizado para identificar de forma única las entidades de contacto)
[NSPredicate predicateWithFormat:@"ALL contacts.uid != %@", contactUId]
acuerdo con la Guía de Programación de predicados de Apple, la operación de todo el agregado es válida pero tengo la siguiente excepción que indica que se trata de una predicado sin soporte:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)'
que puede utilizar un predicado similar a seleccionar todos los grupos que un contacto no pertenecen ya a la utilización de este predicado por lo que parece que tengo todas las relaciones y campos definidos correctamente.
[NSPredicate predicateWithFormat:@"ANY contacts.uid == %@", contactUId]
La excepción se produce cuando se construye el predicado y no cuando estoy tratando de ejecutar realmente la solicitud de búsqueda por lo que parece estar relacionado con la sintaxis que estoy usando en lugar de apoyo de Datos Básicos. ¿Qué estoy haciendo mal?
Ambrosio, la bienvenida a SO. ¿Puedes incluir un poco más de código alrededor de la definición de tu predicado? – makdad
No estoy seguro de qué más incluir. La excepción se produce en el predicateWithFormat: call (a diferencia de durante la ejecución de la búsqueda) por lo que es bastante claro que el problema está relacionado con el predicado y no con la búsqueda. – akrapacs
I recreado el escenario en una aplicación de prueba/muestra y la excepción se está lanzando en la llamada a [NSManagedObjectContext executeFetchRequest: error:] llamada de método y no en el [NSPredicate predicateWithFormat:] llamar como inicialmente indicado. – akrapacs